{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.stats import norm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Kalman Filter Implementation for Constant Acceleration Model (CA) in Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Situation covered: You have an acceleration sensor (in 2D: $\\ddot x$ and $\\ddot y$) and try to calculate velocity ($\\dot x$ and $\\dot y$) as well as position ($x$ and $y$) of a person holding a smartphone in his/her hand.\n",
    "\n",
    "![Smartphone](http://farm8.staticflickr.com/7324/12470549875_d562b39f52.jpg)\n",
    "\n",
    "unter CC BY-NC 2.0 von flickr.com von Canadian Pacific"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## State Vector - Constant Acceleration"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Constant Acceleration Model for Ego Motion in Plane\n",
    "\n",
    "$$x= \\left[ \\matrix{ x \\\\ y \\\\ \\dot x \\\\ \\dot y \\\\ \\ddot x \\\\ \\ddot y} \\right]$$\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Formal Definition:\n",
    "\n",
    "$$x_{k+1} = A \\cdot x_{k} + B \\cdot u$$\n",
    "\n",
    "Hence, we have no control input $u$:\n",
    "\n",
    "$$x_{k+1} = \\begin{bmatrix}1 & 0 & \\Delta t & 0 & \\frac{1}{2}\\Delta t^2 & 0 \\\\ 0 & 1 & 0 & \\Delta t & 0 & \\frac{1}{2}\\Delta t^2 \\\\ 0 & 0 & 1 & 0 & \\Delta t & 0 \\\\ 0 & 0 & 0 & 1 & 0 & \\Delta t \\\\ 0 & 0 & 0 & 0 & 1 & 0  \\\\ 0 & 0 & 0 & 0 & 0 & 1\\end{bmatrix} \\cdot \\begin{bmatrix} x \\\\ y \\\\ \\dot x \\\\ \\dot y \\\\ \\ddot x \\\\ \\ddot y\\end{bmatrix}_{k}$$\n",
    "\n",
    "$$y = H \\cdot x$$\n",
    "\n",
    "Just the acceleration ($\\ddot x$ & $\\ddot y$) is measured.\n",
    "\n",
    "$$y = \\begin{bmatrix}0 & 0 & 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 0 & 0 & 1\\end{bmatrix} \\cdot x$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Initial State"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.],\n",
      "        [ 0.]]), (6, 1))\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x106c95310>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/paul/anaconda/lib/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
      "  if self._edgecolors == str('face'):\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nXkMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106b12e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.matrix([[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]).T\n",
    "print(x, x.shape)\n",
    "n=x.size # States\n",
    "plt.scatter(float(x[0]),float(x[1]), s=100)\n",
    "plt.title('Initial Location')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Initial Uncertainty"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 10.,   0.,   0.,   0.,   0.,   0.],\n",
      "        [  0.,  10.,   0.,   0.,   0.,   0.],\n",
      "        [  0.,   0.,  10.,   0.,   0.,   0.],\n",
      "        [  0.,   0.,   0.,  10.,   0.,   0.],\n",
      "        [  0.,   0.,   0.,   0.,  10.,   0.],\n",
      "        [  0.,   0.,   0.,   0.,   0.,  10.]]), (6, 6))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106d84710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "P = np.matrix([[10.0, 0.0, 0.0, 0.0, 0.0, 0.0],\n",
    "              [0.0, 10.0, 0.0, 0.0, 0.0, 0.0],\n",
    "              [0.0, 0.0, 10.0, 0.0, 0.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 10.0, 0.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 0.0, 10.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 0.0, 0.0, 10.0]])\n",
    "print(P, P.shape)\n",
    "\n",
    "\n",
    "fig = plt.figure(figsize=(6, 6))\n",
    "im = plt.imshow(P, interpolation=\"none\", cmap=plt.get_cmap('binary'))\n",
    "plt.title('Initial Covariance Matrix $P$')\n",
    "ylocs, ylabels = plt.yticks()\n",
    "# set the locations of the yticks\n",
    "plt.yticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.yticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "xlocs, xlabels = plt.xticks()\n",
    "# set the locations of the yticks\n",
    "plt.xticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.xticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "plt.xlim([-0.5,5.5])\n",
    "plt.ylim([5.5, -0.5])\n",
    "\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "divider = make_axes_locatable(plt.gca())\n",
    "cax = divider.append_axes(\"right\", \"5%\", pad=\"3%\")\n",
    "plt.colorbar(im, cax=cax)\n",
    "\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dynamic Matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is calculated from the dynamics of the Egomotion.\n",
    "\n",
    "$$x_{k+1} = x_{k} + \\dot x_{k} \\cdot \\Delta t +  \\ddot x_k \\cdot \\frac{1}{2}\\Delta t^2$$\n",
    "$$y_{k+1} = y_{k} + \\dot y_{k} \\cdot \\Delta t +  \\ddot y_k \\cdot \\frac{1}{2}\\Delta t^2$$\n",
    "\n",
    "$$\\dot x_{k+1} = \\dot x_{k} + \\ddot x \\cdot \\Delta t$$\n",
    "$$\\dot y_{k+1} = \\dot y_{k} + \\ddot y \\cdot \\Delta t$$\n",
    "\n",
    "$$\\ddot x_{k+1} = \\ddot x_{k}$$\n",
    "$$\\ddot y_{k+1} = \\ddot y_{k}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 1.   ,  0.   ,  0.5  ,  0.   ,  0.125,  0.   ],\n",
      "        [ 0.   ,  1.   ,  0.   ,  0.5  ,  0.   ,  0.125],\n",
      "        [ 0.   ,  0.   ,  1.   ,  0.   ,  0.5  ,  0.   ],\n",
      "        [ 0.   ,  0.   ,  0.   ,  1.   ,  0.   ,  0.5  ],\n",
      "        [ 0.   ,  0.   ,  0.   ,  0.   ,  1.   ,  0.   ],\n",
      "        [ 0.   ,  0.   ,  0.   ,  0.   ,  0.   ,  1.   ]]), (6, 6))\n"
     ]
    }
   ],
   "source": [
    "dt = 0.5 # Time Step between Filter Steps\n",
    "\n",
    "A = np.matrix([[1.0, 0.0, dt, 0.0, 1/2.0*dt**2, 0.0],\n",
    "              [0.0, 1.0, 0.0, dt, 0.0, 1/2.0*dt**2],\n",
    "              [0.0, 0.0, 1.0, 0.0, dt, 0.0],\n",
    "              [0.0, 0.0, 0.0, 1.0, 0.0, dt],\n",
    "              [0.0, 0.0, 0.0, 0.0, 1.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 0.0, 0.0, 1.0]])\n",
    "print(A, A.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Measurement Matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here you can determine, which of the states is covered by a measurement. In this example, the position ($x$ and $y$) as well as the acceleration is measured ($\\ddot x$ and $\\ddot y$)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 0.,  0.,  0.,  0.,  1.,  0.],\n",
      "        [ 0.,  0.,  0.,  0.,  0.,  1.]]), (2, 6))\n"
     ]
    }
   ],
   "source": [
    "H = np.matrix([[0.0, 0.0, 0.0, 0.0, 1.0, 0.0],\n",
    "              [0.0, 0.0, 0.0, 0.0, 0.0, 1.0]])\n",
    "print(H, H.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Measurement Noise Covariance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 100.,    0.],\n",
      "        [   0.,  100.]]), (2, 2))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nHgKeBiY453YB/1nzgpnNBpYnPO8NNHXOJdbidUBn4B0zawrs5Zx7r64Pc8MNE+qaLfI5iX90n3gC\nli37STbetmhy6bLLJnDhhfV8SpEENbn0/PPw3/8NkFkupWriqwS6m1lXM2uO3+OaXGuZycC5AGY2\nCNjmnNuQbF0z656w/lhgaTS/pZm1iqZHADudc8sSlj0Dn4S1t39eNH0KMDPFZxJJ25FHZu2tiiaX\ndC5XMtW7NyxZkvl6SY+gnHNVZnY5MA3fk2iSc26pmV0avX63c26KmY02sxXAduCCZOtGb32zmfXA\nn9BdBVwWzW8PTDWzavwe4jm1QjoVGFVr3iTgATN7E9iCb1cXyYo+feCRR1Ivl0ox5dJhhzXoK5AS\n9qUvQceO/trCTJhz6TaNFzYzc6XyWSV7pk+HE04wnHMaNwHlkTTcWWfBQw9llksqUCJJOAdNmqhA\n1VAeSUM1JJc0roJIEhpvTiQ7GpJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJL\nKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAi\nIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJL\nKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAiIhJLKlAi\nIhJLKlAiIhJLKlAiIhJLKQuUmY00s2Vm9qaZXVPPMhOj1xeZWZ9U65rZjdGyC8xsmpl1jOY3N7P7\nzGyxmS00s6EJ6zQ3s3vM7A0zW2pmJ0XzzzezTdF7LTCzCxvzheRLRUVF6BD+LU6xQPziyRblUvbF\n7beieLIraYEyszLgN8BI4FDgDDPrVWuZ0cDBzrnuwCXAXWmse6tzrrdzrg/wd+C6aP53gGrn3BHA\nCOCXCZsaD6x3zvVwzvUCZkXzHfCwc65P9Lg3428hgDj9cOIUC8QvnmxQLuVG3H4riie7Uh1BDQRW\nOOdWOed2Ao8AY2stMwa4H8A5Nxdoa2Ydkq3rnPswYf3WQHU03Qt4NlpmE7DNzPpHr10A3FyzknNu\nSzRp0UMkzpRLIhlKVaAOANYmPH87mpfOMvsnW9fMbjKzNcCZ7N7rWwSMMbMyMzsI6AccaGZto9d/\nambzzexRM9svmueAk6OmjMfMrFOKzyQSgnJJJFPOuXofwMnA7xOenw3cUWuZp4BjEp7PwCdDynWj\n+dcCE6LpMuBXwALgSeBp/F5lO/ye4bej5f4f8H/R9N5As2j6EmBmPZ/F6aFHQx/J8iSdB0WSS6H/\nH/Qo/EcmedOU5NYBByY8PxC/95ZsmU7RMs3SWBfgIXzyTHDO7QL+s+YFM5sNLAe2ADucc3+NXnoc\nuAj/ad9LeK9JwK11fRDnnJouJKSiyCXlkeRTqia+SqC7mXU1s+bA6cDkWstMBs4FMLNBwDbn3IZk\n65pZ94T1xwJLo/ktzaxVND0C2OmcW+b8rttTZjYsWmc48Fq0XMeE9xoDvJ72pxfJH+WSSIaSHkE5\n56rM7HJgGr7JYJJzbqmZXRq9frdzboqZjTazFcB2/AnYeteN3vpmM+uBb2pYBVwWzW8PTDWzavwe\n4jkJ4VwDPGBmtwMba7YDXGFmY4Aq/N7h+Q37KkRyR7kkkjmL2pVFRERipahHkjCzU83sNTPbZWZ9\na732w+iix2VmdkKA2CaY2dsJF0WOzHcMURwpLx7Nczyrol5kC8zs5QDbv9fMNpjZkoR5e5vZdDNb\nbmb/SOgJVzKUS2nFoVzave2s5FFRFyhgCXASuy9EBMDMDsW34x+Kv/jxTjPL93fhgF8lXBQ5Nc/b\nT+vi0QAcUB59JwMDbP8+/PeR6FpgunPuEGBm9LzUKJeSUC59QVbyqKgLVHRSeHkdL43FXzG/0zm3\nCliBvxgy30L3iErn4tEQgn0vzrnnga21Zv/7Atro3xPzGlQMKJdSUi4lyFYeFXWBSmJ/Pt9Nt66L\nJvPhCvPjqE0K1GyUzsWj+eaAGWZWaWbfCRxLjfZRbzqADfgOCOIplzzlUmoZ51Gq66Biz8ymAx3q\neOlHzrmnMnirrPcWSRLbePw4azdEz2/Ej5V2UbZjSCGOPWSOcc69a2b7AtPNbFm0NxYLzjlnZnH8\n3hpNudQocfxNxDaX0s2jgi9QzrkRDVitrgsi12Unot3Sjc3M/oAfRSDf0rl4NK+cc+9G/24ysyfw\nTSehk2qDmXVwzq2PrhXaGDienFAuNYpyKbWM86iUmvgS22InA+PM33bgIKA7kO9eLokXRZ6EPwmd\nb+lcPJo3ZranmbWJplsBJxDme6ltMnBeNH0efuigUqZc+iLlUmqZ51FjxxiL8wP/Y10LfAysB55J\neO1H+BO6y4CvB4jt/4DF+EE9n8S3z4b4jkYBb0TfxQ8D/38dBCyMHq+GiAd4GHgH+Cz67VyAH6Nu\nBn6ooH8AbUN+T4H+b5RLqeNQLu3eflbySBfqiohILJVSE5+IiBQQFSgREYklFSgREYklFSgREYkl\nFSgREYklFSgREYklFSgREYml/w/HsjHcKhPW6wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106c6ff90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ra = 10.0**2\n",
    "R = np.matrix([[ra, 0.0],\n",
    "               [0.0, ra]])\n",
    "print(R, R.shape)\n",
    "\n",
    "# Plot between -10 and 10 with .001 steps.\n",
    "xpdf = np.arange(-10, 10, 0.001)\n",
    "plt.subplot(121)\n",
    "plt.plot(xpdf, norm.pdf(xpdf,0,R[0,0]))\n",
    "plt.title('$x$')\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(xpdf, norm.pdf(xpdf,0,R[1,1]))\n",
    "plt.title('$y$')\n",
    "\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Process Noise Covariance Matrix Q for CA Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Position of an object can be influenced by a force (e.g. wind), which leads to an acceleration disturbance (noise). This process noise has to be modeled with the process noise covariance matrix Q.\n",
    "\n",
    "$$Q = \\begin{bmatrix}\\sigma_{x}^2 & \\sigma_{xy} & \\sigma_{x \\dot x} & \\sigma_{x \\dot y} & \\sigma_{x \\ddot x} & \\sigma_{x \\ddot y} \\\\ \\sigma_{yx} & \\sigma_{y}^2 & \\sigma_{y \\dot x} & \\sigma_{y \\dot y} & \\sigma_{y \\ddot x} & \\sigma_{y \\ddot y} \\\\ \\sigma_{\\dot x x} & \\sigma_{\\dot x y} & \\sigma_{\\dot x}^2 & \\sigma_{\\dot x \\dot y} & \\sigma_{\\dot x \\ddot x} & \\sigma_{\\dot x \\ddot y} \\\\ \\sigma_{\\dot y x} & \\sigma_{\\dot y y} & \\sigma_{\\dot y \\dot x} & \\sigma_{\\dot y}^2 & \\sigma_{\\dot y \\ddot x} & \\sigma_{\\dot y \\ddot y} \\\\ \\sigma_{\\ddot x x} & \\sigma_{\\ddot x y} & \\sigma_{\\ddot x \\dot x} & \\sigma_{\\ddot x \\dot y} & \\sigma_{\\ddot x}^2 & \\sigma_{\\ddot x \\ddot y} \\\\ \\sigma_{\\ddot y x} & \\sigma_{\\ddot y y} & \\sigma_{\\ddot y \\dot x} & \\sigma_{\\ddot y \\dot y} & \\sigma_{\\ddot y \\ddot x} & \\sigma_{\\ddot y}^2\\end{bmatrix}$$\n",
    "\n",
    "To easily calcualte Q, one can ask the question: How the noise effects my state vector? For example, how the acceleration change the position over one timestep dt.\n",
    "\n",
    "One can calculate Q as\n",
    "\n",
    "$$Q = G\\cdot G^T \\cdot \\sigma_a^2$$\n",
    "\n",
    "with $G = \\begin{bmatrix}0.5dt^2 & 0.5dt^2 & dt & dt & 1.0 & 1.0\\end{bmatrix}^T$ and $\\sigma_a$ as the acceleration process noise."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Symbolic Calculation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$$\\left[\\begin{matrix}0.25 \\Delta t^{4} & 0.25 \\Delta t^{4} & 0.5 \\Delta t^{3} & 0.5 \\Delta t^{3} & 0.5 \\Delta t^{2} & 0.5 \\Delta t^{2}\\\\0.25 \\Delta t^{4} & 0.25 \\Delta t^{4} & 0.5 \\Delta t^{3} & 0.5 \\Delta t^{3} & 0.5 \\Delta t^{2} & 0.5 \\Delta t^{2}\\\\0.5 \\Delta t^{3} & 0.5 \\Delta t^{3} & \\Delta t^{2} & \\Delta t^{2} & 1.0 \\Delta t & 1.0 \\Delta t\\\\0.5 \\Delta t^{3} & 0.5 \\Delta t^{3} & \\Delta t^{2} & \\Delta t^{2} & 1.0 \\Delta t & 1.0 \\Delta t\\\\0.5 \\Delta t^{2} & 0.5 \\Delta t^{2} & 1.0 \\Delta t & 1.0 \\Delta t & 1.0 & 1.0\\\\0.5 \\Delta t^{2} & 0.5 \\Delta t^{2} & 1.0 \\Delta t & 1.0 \\Delta t & 1.0 & 1.0\\end{matrix}\\right]$$"
      ],
      "text/plain": [
       "⎡             4               4              3              3              2  \n",
       "⎢0.25⋅\\Delta t   0.25⋅\\Delta t   0.5⋅\\Delta t   0.5⋅\\Delta t   0.5⋅\\Delta t   \n",
       "⎢                                                                             \n",
       "⎢             4               4              3              3              2  \n",
       "⎢0.25⋅\\Delta t   0.25⋅\\Delta t   0.5⋅\\Delta t   0.5⋅\\Delta t   0.5⋅\\Delta t   \n",
       "⎢                                                                             \n",
       "⎢            3               3             2              2                   \n",
       "⎢0.5⋅\\Delta t    0.5⋅\\Delta t      \\Delta t       \\Delta t     1.0⋅\\Delta t   \n",
       "⎢                                                                             \n",
       "⎢            3               3             2              2                   \n",
       "⎢0.5⋅\\Delta t    0.5⋅\\Delta t      \\Delta t       \\Delta t     1.0⋅\\Delta t   \n",
       "⎢                                                                             \n",
       "⎢            2               2                                                \n",
       "⎢0.5⋅\\Delta t    0.5⋅\\Delta t    1.0⋅\\Delta t   1.0⋅\\Delta t        1.0       \n",
       "⎢                                                                             \n",
       "⎢            2               2                                                \n",
       "⎣0.5⋅\\Delta t    0.5⋅\\Delta t    1.0⋅\\Delta t   1.0⋅\\Delta t        1.0       \n",
       "\n",
       "            2⎤\n",
       "0.5⋅\\Delta t ⎥\n",
       "             ⎥\n",
       "            2⎥\n",
       "0.5⋅\\Delta t ⎥\n",
       "             ⎥\n",
       "             ⎥\n",
       "1.0⋅\\Delta t ⎥\n",
       "             ⎥\n",
       "             ⎥\n",
       "1.0⋅\\Delta t ⎥\n",
       "             ⎥\n",
       "             ⎥\n",
       "     1.0     ⎥\n",
       "             ⎥\n",
       "             ⎥\n",
       "     1.0     ⎦"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sympy import Symbol, Matrix\n",
    "from sympy.interactive import printing\n",
    "printing.init_printing(use_latex=True)\n",
    "dts = Symbol('\\Delta t')\n",
    "Qs = Matrix([[0.5*dts**2],[0.5*dts**2],[dts],[dts],[1.0],[1.0]])\n",
    "Qs*Qs.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(matrix([[ 0.00015625,  0.00015625,  0.000625  ,  0.000625  ,  0.00125   ,\n",
      "          0.00125   ],\n",
      "        [ 0.00015625,  0.00015625,  0.000625  ,  0.000625  ,  0.00125   ,\n",
      "          0.00125   ],\n",
      "        [ 0.000625  ,  0.000625  ,  0.0025    ,  0.0025    ,  0.005     ,\n",
      "          0.005     ],\n",
      "        [ 0.000625  ,  0.000625  ,  0.0025    ,  0.0025    ,  0.005     ,\n",
      "          0.005     ],\n",
      "        [ 0.00125   ,  0.00125   ,  0.005     ,  0.005     ,  0.01      ,\n",
      "          0.01      ],\n",
      "        [ 0.00125   ,  0.00125   ,  0.005     ,  0.005     ,  0.01      ,\n",
      "          0.01      ]]), (6, 6))\n"
     ]
    }
   ],
   "source": [
    "sa = 0.1\n",
    "G = np.matrix([[1/2.0*dt**2],\n",
    "               [1/2.0*dt**2],\n",
    "               [dt],\n",
    "               [dt],\n",
    "               [1.0],\n",
    "               [1.0]])\n",
    "Q = G*G.T*sa**2\n",
    "\n",
    "print(Q, Q.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nBO/zzM4EAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108592d50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(6, 6))\n",
    "im = plt.imshow(Q, interpolation=\"none\", cmap=plt.get_cmap('binary'))\n",
    "plt.title('Process Noise Covariance Matrix $Q$')\n",
    "ylocs, ylabels = plt.yticks()\n",
    "# set the locations of the yticks\n",
    "plt.yticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.yticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "xlocs, xlabels = plt.xticks()\n",
    "# set the locations of the yticks\n",
    "plt.xticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.xticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "plt.xlim([-0.5,5.5])\n",
    "plt.ylim([5.5, -0.5])\n",
    "\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "divider = make_axes_locatable(plt.gca())\n",
    "cax = divider.append_axes(\"right\", \"5%\", pad=\"3%\")\n",
    "plt.colorbar(im, cax=cax)\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Identity Matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(array([[ 1.,  0.,  0.,  0.,  0.,  0.],\n",
      "       [ 0.,  1.,  0.,  0.,  0.,  0.],\n",
      "       [ 0.,  0.,  1.,  0.,  0.,  0.],\n",
      "       [ 0.,  0.,  0.,  1.,  0.,  0.],\n",
      "       [ 0.,  0.,  0.,  0.,  1.,  0.],\n",
      "       [ 0.,  0.,  0.,  0.,  0.,  1.]]), (6, 6))\n"
     ]
    }
   ],
   "source": [
    "I = np.eye(n)\n",
    "print(I, I.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Measurement"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "They are generated synthetically"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2, 100)\n",
      "Standard Deviation of Acceleration Measurements=0.09\n",
      "You assumed 100.00 in R.\n"
     ]
    }
   ],
   "source": [
    "m = 100 # Measurements\n",
    "\n",
    "# Acceleration\n",
    "sa= 0.1 # Sigma for acceleration\n",
    "ax= 0.0 # in X\n",
    "ay= 0.0 # in Y\n",
    "\n",
    "mx = np.array(ax+sa*np.random.randn(m))\n",
    "my = np.array(ay+sa*np.random.randn(m))\n",
    "\n",
    "measurements = np.vstack((mx,my))\n",
    "\n",
    "print(measurements.shape)\n",
    "print('Standard Deviation of Acceleration Measurements=%.2f' % np.std(mx))\n",
    "print('You assumed %.2f in R.' % R[0,0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA70AAAIhCAYAAACCDt0gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuwpWV9J/rvDzradFpl74nxitdgVPCSMBoFx7RBOUQN\nZqaGCFPJkVzUZMJMEvSIhpyhnZqKocpxnClLC6NGRzMSzcUDI8YhTtp4RPDWnhiEBC8kaiIYaRSE\npgWe88daTTZN995vd+91e/bnU7Wr13rXu9b6re53r36/73Or1loAAACgR0fMugAAAACYFKEXAACA\nbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4ANryquq6qbq+qf7bP9p1VdVdVPWJW\ntc2r8d/ZT8y6DgBYi9ALAElL8uUkZ+7dUFVPSnLU+LGZq7FZ17FCSzJP9QDAfgm9ADDyniT/54r7\nL0ny3zMOdlV136p6fVX9bVV9o6reUlWbx48dXVX/s6puqKobq+qSqnrY3heqqrOq6ktV9Z2q+nJV\n/Zvx9u1V9e4V+z1q3LJ8xPj+jqr6T1X18STfTfLoqnp8VV1WVd+qqmuq6vQVz39nVb25qi6tqpur\n6v+tqgdV1RvHdV1dVU9dsf9Dq+qPxnV/uar+3YrHtlfV+6rqXeO6/6qqThg/9u4kj0hyyfh9Xjn+\n+3lPVf1jVe2qqk9W1Q+u3z8PABwaoRcARq5Icv9xqDwyyYszCsLJKPj+TpIfSvKU8Z8PS/Ifxo8f\nkeTtGQXBRyS5LcmbkqSqvj/Jf01yamvt/kmemeRz4+cNaUX+2SS/lGRrkm8luWxc1wOTnJHkzVX1\nhBX7n57kvCQ/kOT2JJ9I8ukk/yzJHyZ5w7iuI5JckmRnkocmOTnJr1fVKSte66eSvDfJA5JcvPcz\ntdZ+LsnfJXlha+1+rbXXJzkryf2TPDzJcpKXj/8eAGCmhF4A+Cfvzqi193lJvpDk6+PtleSlSc5p\nrd3UWrslyesyCp1prd3YWvuT1tru8WO/neTHV7zuXUmeVFVHtdaub619YcXrrqYleWdr7erW2l1J\nTk3yldbau1prd7XWPpfkjzMKunv9cWttZ2vt9iR/kuS21tp7WmstyfuS/Mh4v6cl+YHW2n9qrd3R\nWvtKkrft/UxjH2ut/en4ue/JKPAfyJ6MgvWxbWRna+3mNT4fAEzcplkXAABzomUUej+W5NFZ0bU5\no1bVLUk+s2JYbWV88biqtiT5L0n+jyRL48e3VlW11r5bVS9O8sokbx93VX5Fa+2vB9b11RW3H5nk\nx6pq14ptm8a17v0MN6x4bPc+92/LqMV472s9dJ/XOjLJX6y4f/2K27cm2VxVR4wD+L7eneSYJBdV\n1dEZheTzWmt3rPbhAGDStPQCwFhr7e8ymtDqJzNqQd3rHzMKjE9srS2Nf44ed1dOklckeVySp7fW\nHpBRK2+Nf9Ja+1+ttVOSPDjJNUl+d/y872YUpvd68P7KWnH775J8dEUNS+Puxb96CB/3qxm1Gq98\nrfu31l64n/fdn3s8Pm4t/o+tteOSnJjkhbnnGGkAmAmhFwDu6ReT/ERrbeV41LsyCqpvrKoHJklV\nPWzF+NetGYXib1fVcpLz9z6xqn6wql40Htv7vYyC7p3jhz+X5NlVdUxVPSDJa/ZTz8ou0P8zyeOq\n6mer6vvGP0+rqsfvZ9+1fDLJzVX1qqo6qqqOrKrjq+qfD3yt65M8dsXn3FZVTxqPh755/FnvPNCT\nAWBahF4AWKG19uXW2mdXbhr/nJvki0muqKpvZzSh1OPG+7wxo+WN/jHJ5Uk+lH9qCT0iyW9kND74\nW0n+RZJfGb/XZUn+IMlfJvlURhNL7dvCevf98XjhUzIad/v1JP+Q0dji++xT67613+v1Wmt3ZtQa\n+9SMWre/meStGU1Gtepzx16X5LfGMzW/IqNW6vcn+XZG46F3ZNTlGQBmqkZzU8zozavekeQFSW5o\nrT3pAPv8t4y6md2a5KzW2s4plggAAMACm3VL7+9lNBPlflXV85P8UGvt2CQvS/KWaRUGAADA4ptp\n6G2tfSzJrlV2OS3Ju8b7Xpnk6Kp60DRqAwAAYPHNuqV3LQ/LPZdq+FpGi94DAADAmuY99Cb3nj1y\ndoOQAQAAWCibZl3AGr6e0UL3ez18vO0eqkoQBgAA6Fhr7WCW5rvbvIfei5OcneSiqnpGkptaa9fv\nb8dZzkIN62H79u3Zvn37rMuAw+ZYpgeOY3rhWKYXVYeUd5PMOPRW1XuT/HiSH6iqryY5P8n3JUlr\n7cLW2qVV9fyq+mKS7yb5+dlVCwAAwKKZaehtrZ05YJ+zp1ELAAAA/VmEiaxgQ9i2bdusS4B14Vim\nB45jeuFYhqR6GAtbVa2HzwEAAMC9VdUhT2SlpRcAAIBuCb0AAAB0S+gFAACgW/O+Ti8AAMDcOZx1\nY7m3Sc7RJPQCAAAcApPpro9JX0DQvRkAAIBuCb0AAAB0S+gFAACgW0IvAAAA3RJ6AQAA6JbQCwAA\nQLeEXgAAALol9AIAANAtoRcAAIBuCb0AAAB0S+gFAACgW5tmXQAAAADz7Tvf+U7OP//8bN26NXv2\n7Mnxxx+fN7zhDdm5c+esS1uT0AsAADBhVdN5n9bW/zVvueWWnHzyyTnzzDNzzjnnJElOOumkHHHE\nYnQcFnoBAAAmbBJhdFrOO++87N69++7AmyRbtmzJiSeeOMOqhluMaA4AAMDU3XTTTbnwwgtzxhln\n3L1tz549ufzyy/Oc5zxnhpUNJ/QCAACwX5dffnn27NmTk08++e5tV155Zfbs2ZNnP/vZM6xsOKEX\nAACA/dq9e3eS5Ljjjrt7244dO3LCCSdk69atueCCC2ZV2mDG9AIAALBfz3zmM7N58+bcfPPNud/9\n7pedO3fmHe94R573vOfl9ttvz6233pok+chHPpIbbrghV1xxRU488cRcddVVecxjHpOzzjprth8g\nSbVFHlE9VlWth88BAAAshqrKRskg73//+3PJJZfk2GOPzdFHH51nPetZedWrXpXjjjsur3zlK3Pf\n+943V155ZV74whfmrLPOyimnnJIkecADHpAXvOAFa77+kL/L8T6HNAe20AsAAHCQNlLoXcttt92W\nzZs3p6rypCc9KR/96EezvLw8+PmTDr3G9AIAAHDIjjrqqFRVvvnNb+auu+7K8vJyWmt3d32eNWN6\nAQAAOGQf+MAHcsstt+TOO+/MU57ylCTJpZdemhNOOCFbtmyZcXVaegEAADgM3/rWt3L11Vfnvve9\nb5aWlvLOd74zmzZtyoMf/OBZl5bEmF4AAICDZkzv+jGmFwAAAA6R0AsAAEC3hF4AAAC6JfQCAADQ\nLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCAADQLaEXAACA\nbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOjWplkXAAAAwHz7zne+k/PPPz9bt27Nnj17cvzxx+cN\nb3hDdu7cOevS1iT0AgAATFi9tqbyPu38tu6vecstt+Tkk0/OmWeemXPOOSdJctJJJ+WIIxaj47DQ\nCwAAMGGTCKPTct5552X37t13B94k2bJlS0488cQZVjXcYkRzAAAApu6mm27KhRdemDPOOOPubXv2\n7Mnll1+e5zznOTOsbDihFwAAgP26/PLLs2fPnpx88sl3b7vyyiuzZ8+ePPvZz55hZcMJvQAAAOzX\n7t27kyTHHXfc3dt27NiRE044IVu3bs0FF1wwq9IGE3oBAADYr2c+85nZvHlzbr755iTJzp078453\nvCNPfvKTc/vtt+fWW2/Nbbfdlje/+c0544wzcscddyRJfuEXfiHXXHPNLEu/W7W2uAOq96qq1sPn\nAAAAFkNVZaNkkPe///255JJLcuyxx+boo4/Os571rLzqVa/K8ccfn3POOSdXXHFFTjvttDz1qU/N\nZz7zmWzZsiXHHHNMrr322mzevHnN1x/ydzne55CmwDZ7MwAAAAd0+umn5/TTT7/Htssuu+zu20tL\nS/nCF76Qxz72sdmyZUu+9KUv5SEPecigwDsNujcDAABwyLZu3ZoPfvCDOe2005Ikn/jEJ+ZqOSOh\nFwAAgMNyww035JGPfGSS5CMf+chchV5jegEAAA7SRhrTO8QnPvGJXHTRRTnhhBNy9tln56qrrsox\nxxwz6LmTHtMr9AIAABwkoXf/vvKVr+SUU07JtddeO/g5kw69ujcDAABwyD7+8Y/nuc99bpLk9a9/\nfc4///wZV3RPWnoBAAAOkpbef/LlL385F110UZaXl5Mkv/zLv3xQz9e9eQChFwAAmCahd/3o3gwA\nAACHSOgFAACgW0IvAAAA3RJ6AQAA6JbQCwAAQLeEXgAAALol9AIAANAtoRcAAIBubZp1AQAAAIuo\nqmZdAgMIvQAAAAeptTbrEhhI92YAAAC6JfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0S\negEAAOiW0AsAAEC3hF4AAAC6JfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW\n0AsAAEC3hF4AAAC6JfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3\nhF4AAAC6JfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6\nJfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCAADQ\nLaEXAACAbs009FbVqVV1TVVdW1Xn7ufxbVX17araOf75rVnUCQAAwGLaNKs3rqojk7wpyXOTfD3J\np6rq4tba1fvs+tHW2mlTLxAAAICFN8uW3qcn+WJr7brW2veSXJTkRfvZr6ZbFgAAAL2YZeh9WJKv\nrrj/tfG2lVqSE6vq/6uqS6vqiVOrDgAAgIU3s+7NGQXatXw2yTGttVur6ieTfCDJ4/a34/bt2+++\nvW3btmzbtm0dSgQAAGDaduzYkR07dqzLa1VrQ7Ln+quqZyTZ3lo7dXz/NUnuaq1dsMpzvpLkhNba\njftsb7P6HAAAAExWVaW1dkhDX2fZvfnTSY6tqkdV1X2SvDjJxSt3qKoHVVWNbz89o5B+471fCgAA\nAO5tZt2bW2t3VNXZST6c5Mgkb2+tXV1VLx8/fmGSf53kV6rqjiS3JjljVvUCAACweGbWvXk96d4M\nAADQr0Xt3gwAAAATJfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3\nhF4AAAC6JfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6\nJfQCAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCAADQ\nLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCAADQLaEXAACA\nbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCAADQrU2zLgAAYN4sX7Cc\nXbt3rbrP0ual3HjujVOqCIBDJfQCM7e8nOxa/dwyS0vJjc4tgSnZtXtX2vlt1X3qtTWlagA4HEIv\nMHO7diVt9XPLlHNLAAAOgTG9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQC\nAADQLaEXAACAbgm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4AAAC6JfQCwJQsLydV\nq/8sL8+6SgDoy6ZZFwAAG8WuXUlrq+9TNZ1aAGCj0NILAABAt4ReAAAAuqV7MwAAABOxfMFydu3e\nteZ+7fw1xv8cBqEXAACAidi1e9dEA+0QujcDAADQLaEXAACAbgm9AAAAdEvoBYB1sLw8WmN3tZ+l\npVlXCQAbj4msAGAd7NqVtNnO0wEA7IeWXgAAALol9AIAANAtoRcAAIBuGdMLAACdWr5gObt271p1\nn6XNS7nx3BunVBFMn9ALAACd2rV7V9r5q8+yV6+tKVUDs6F7MwAAAN3S0gscMl2mAACYd0IvcMh0\nmYLFNm8XruatHoBebbTvW6EXADaoebtwNW/1APRqo33fGtMLAABAt4TeBba8nFSt/rO8POsqAQAA\nZkf35gW2a1fSVu+VkOqnVwIAAMBBE3qBDWWtiRt6mrSBkeXl0UXCA1laSm70Tw4A3RJ6O7e0tHZr\nrxM+NpK1Jm7oadIGRtbqFaNHDAD0Tejt3JAw64QPAADolYmsAABgikxGCtOlpRcAAKbIZKQwXVp6\nAQAA6JbQCwAAwL300g1f6AUA5sZaJ1gATE9rq/+stiTgPDGmF1ax1pquiXVdAdbTmuMcXzudOgDo\nh9DLhrZWqF3avLTqmq6JdV2ZrOXlta+iWmsbgJ5odFgg5y6nXrv2v9WsDQq9VXVSkket2L+11v77\npIqCadm1e9eaoRZmqdcZPufphGZpae2/QxcWAKZnyPmZRoc5cdRinEuvGXqr6j1JHpPkc0nuXPGQ\n0AvAIZmnE5ohYXYRLywATNs89U6ap4urzN6Qlt4TkjyxtbXaGkjm65cdAOBgCQuLY8h5Z7ZPo5KR\neeqdNE8XV5m9IaH3r5I8JMnfT7iWLszTLzsAwMESFhbHoPNOk7/BoND7wCRfqKpPJrl9vK211k6b\nXFkA+xg4UYKWBwAAVhoSereP/9x7HalW3AaYjgETJcxTy4PugUzSIg6lOeI1y2mbVy+6dg+Y4fO2\npTV/1/1uAbDSmqG3tbajqh6c5GkZhd1PttZumHhlAAtM90AmaRGH0rTN6zTD5wU3DujOOWcfHoCZ\nOmKtHarqZ5JcmeT0JD+T5JNVdfqkCwMAYLjl5dHFjtV+lpdnXSXA9A3p3vxbSZ62t3W3qh6Y5CNJ\n3j/JwgAAJmHeZrxdL4vYA2DRDO2mf9fr5qt7/Zr/7tunUQXMzpDQW0m+ueL+t8bbAGCi1jpRm7dx\nqyyGbme8HTDhX85dStLfL81a8yis1zjvId3057F7fZfHOxyEIaH3T5N8uKr+R0Zh98VJPjTRqmAD\nWsSJaVgcizqxllYrOAgLNuHfelprHoVeP/dGt+r/AdunVQWLYEjofVWSf5XkWRlNZHVha+1PJlrV\nIdAawKKbZrc0AXvjMbEWAL1Z7bxJ6zUrDZm9uSX5o/HP/Nq++snartv67M4zTxa1JWkj6nXc19Lm\nYUuZHK5exwMO4YIJALBoDhh6q+rjrbWTquqW3Htd3tZau/9kSzs4WjBmT0sSszatCyrdjgccoNcL\nJgCwPy729uGAobe1dtL4z63TKwfgwKY1jGHI+zAFt63dcr9ok/IM6RGzaJ8JoGcu9vZhze7NVfXu\n1trPrbUNNrKpjSkfMjPnoNdZzJPqaf2ns9b7MCUX3DigRX2xzjT0iAGA6RsykdXxK+9U1aYkJ0ym\nHBhm3rqaTO0K4ICZOYdwUs080KIO0JkNvGwW8221Mb2/meQ1SY6qqptXPPS9JG+ddGHMl3mbuEdX\nE1h8WtTnw5rfldunUQXQhQ28bBbzbbUxvb+d5Ler6ndaa6+eYk0zM62FzRfRRp64B2bKVXMmzHc7\nAL0bsmTRq6tqKcmxSTav2P4XkyxsFixszkwNCTe36e+54bhqDsAUTG1+EpiBIRNZvTTJv09yTJKd\nSZ6R5BNJfmKypcF0rPYlP+gLfr1mmB0SbirJ76xRDwAcQO1e+/+s2u0C60Zk2NhiGLIKwEbunXog\nQyay+rUkT0vyidbac6rq8UleN9myYHpW+5If9AU/xRlml5ZciQUyd93e523eh0UzzckZ73rd2i9S\nFWd63JseaXNhyCoAyxcsr3nuubR5Y/1bDQm9u1trt1VVqmpza+2aqvrhiVcG3MuQE571uhI7JGDP\n20msiwJsGHPW7d28D4fH5IwsBD3SFoZW3nsbEnq/Nh7T+4Ekl1XVriTXTbQqYOYGBew5O4md5kUB\n+jGkq5jJwmB2hnbnhEOx1nlBvXq+etZwaIZMZPXT45vbq2pHkvsn+dP1ePOqOjXJG5McmeRtrbUL\n9rPPf0vyk0luTXJWa23nerw3AJOxaL0EhnQVM1nYxrRIx3HPhvyOsljm6Xdr7V4q8/d/hF5tB2/V\n0FtVm5L8VWvt8UnSWtuxXm9cVUcmeVOS5yb5epJPVdXFrbWrV+zz/CQ/1Fo7tqp+LMlbMppIi/U0\nZ2PDgMW2iL0EWBzTvKgypMu2k084eIZDHB7DIQ7eqqG3tXZHVf11VT2ytfa36/zeT0/yxdbadUlS\nVRcleVGSq1fsc1qSd41rubKqjq6qB7XWrl/nWja2KY8Nc4IAszFPV9bhUM3bRRUnnwDzb8iY3uUk\nV1XVJ5N8d7yttdZOO8z3fliSr664/7UkPzZgn4cnEXoXmBMEmA1X1g/Dei1NBsytQeP7zU7MBJkJ\nf3KGhN7/ez/b1mNgxdDX2Pcsw6AOFs+QE2b/kU7Fml0jt0+rEhbKFJcmA2Zj0Ph+sxP3ZcD52TQn\nSTMT/uQMmchqR1U9KqOxtX9WVVuGPG+Aryc5ZsX9YzJqyV1tn4ePt93L9u3b7769bdu2bNu2bR1K\nZJHN1WQ6Q06Y/Uc6FWt1jfSfCQBsEAPOz5idHTt2ZMeOHevyWmuG16p6WZKXZtTN+bEZBc+3JDn5\nMN/700mOHQfqv0/y4iRn7rPPxUnOTnJRVT0jyU0HGs+7MvTOu57XEp2bkJn5G/cFXRgw8d3S5iVr\nBM4DPUwA5saQrstLvpLvYd+GzNe+9tBP3Ie02P5qRpNOXZEkrbW/qaofPOR3HBtPknV2kg9ntGTR\n21trV1fVy8ePX9hau7Sqnl9VX8xoPPHPH+77zoOe1xLVJQM6N+WJ7zgMephM3NJmY72BYYZ0XWZy\nhoTe21trt9c4hY2XMVqXf7LW2oeSfGifbRfuc//s9XivhbNOywiZlAFmZ556PgDrb0iPBheB1sdh\nNwZsX48qgEU1JPR+tKrOS7Klqp6X5N8muWSyZc2vId2S18U6taZs5EkZhgT+aU5OwMaziD0fBHU2\nhIHd9OfJXM1TMQOH20I2j9+3rG4jH++svyGh99VJfjHJ55O8PMmlSd42yaLmmW4Jc2LgCctagR+4\np0UM6nDQBlxYnjfmqWCj2Yj/H2mwmZwhszffmeSt45+FVbvXHndTux1EC2MBT1hYxQK2ugAr+B3e\nkHqdlBNmZUgPTQ7NAUNvVX1+lee11tqTJ1DPxNz1urW/dZeXk1qtm+/2td9n6BWaQeOAdOvgECxk\nFzgXMWCx+R3ekAZNlAb7GDIBnItkrLfVWnp/ampVzIn1WL9z0BjagZNabMRuHb0aukzVetAFDvax\nRivkup1cDVgiaNB7WWoIGGoBe1lY0o5ZOGDoba1dt/f2eC3dH2qt/VlVbcloiSFgIN27YIam1Qo5\nYImg9XqdXicghIlZr4tS80YvCxhkzTG9VfWyJC9NspzksUkenuQtSU6ebGmsRfcQgAXszg9M33pd\nlIL9GDR30Kut2T1LQ2Zv/tUkT09yRZK01v6mqn5wolXNqXkLmbqHABgKwsZgVtfODOiWnHOFpEUx\nZO6gjbxm9/JysmuNwz2Z7Co5Q0Lv7a2122t8Kb2qNiXZkNfKhExgXRm7yQRNcy6BebTqZ98+rSrW\nj1ldOzOgW/JGDkn0Zdeu2S/7OiT0frSqzkuypaqel+TfJrlksmUBszakVUEgO0zGbjJBG30ugdV+\nt7T+A2wsQ0Lvq5P8YpLPJ3l5kkuTvG2SRQGzN2gmcoGsK/M2hAOYjXVb+m7gzMJ60gGTNiT0bk7y\n9tbaW5Okqo5MclSSWydZGADT5cQTSNZx6bs56sI7tLv/evWQMMEezJchofd/ZzRT8y3j+1uSfDjJ\niZMqCujHkNZD3aQPnxMsgAMbFOTXKX8vbV7Kru16zcA8GRJ679ta2xt401q7ebxWL8CahrQe6iZ9\n+MxgzCS5qALD6TXD/hhCNFtDQu93q+qE1tpnkqSq/nmS2yZbFgAwD7RaMWkuqrARuBgyW0NC768n\neV9V/cP4/kOSvHhyJQEA88KJ2hQMnPBpEQ0JtHqqwJzqaGnFNUNva+1TVfWEJD883vTXrbU9ky0L\nAGCDGDDh06ISaBfDIs6/sWbNc1bvvFleHq2fu5qlpRvXHA+/KEPU1gy9VXV2kt9vrX1+fH+pqn6p\ntfbmiVcHAMDcMT6xL4s4/8ZaNc9bvfNm1661L0oNMXRm9Fkb0r35pa21N+2901rbVVUvSyL0AgBs\nQOvV7V14hsW2Xst8TdqQ0HtEVR3RWrsruXud3u+bbFn0alD3mXOXkszHb9CiXL0CgEVkzDgwDUNC\n74eTXFRVFyapJC9P8qcTrYpuDeo+M6WF6odYlKtXME96bLlxAYxD1tFEMACLakjoPTfJy5L8SpKW\n5C8zmsEZgMPQa5DqseVmmhfAej0uNqwLblx7MidjDwEmasjszXdW1ZVJHpvk9CQPTPJHky4MYBaG\ntlKuR7DTk4D9cVwAwPo6YOitqh9OcmaSM5J8K8kfJKnW2rbplAYwfYvWBR8AgNWt1tJ7dZKPJfmp\n1tq1SVJVvzGVqgAAAGAdHLHKY/8qyTeS/HlV/W5VPTejiawAAABgIRww9LbWPtBae3GSxyfZkeTX\nkzywqt5SVadMqT4AAJi4vZPIrfZjEjlYTKu19CZJWmu3tNZ+v7X2wiTHJNmZ5NUTrwwAAKbkxhuT\n1lb/MdEcLKYhSxbdrbV2Y5K3jn8ANqQe16EFAPpg6bt7O6jQC7DS0C/V3q6Mz9s6tEI4ALBXb+dd\n60HoBQ7ZkC/VtUIxh2/eQjgAwDwRegEAgK7o4stKQi8AANAVXXxZSegFYGEZzwwArEXoZf7ctvZJ\nbG5zEgsYzwwArE3oZf5ccGNaW32XqiS/M5VqAACmTyMArBuhFwAA5o1GAFg3Qi8wUWZPBDYy34EA\nsyf0zoC86NV6AAALzElEQVSJV1bnBKEvZk8ENjLfgQCzJ/TOgIlXVucEAQAAWC9HzLoAAAAAmBSh\nFwAAgG4JvQAAAHTLmF4AoCtrTRi5kSeLBNiIhF6GGbBAupMIAOaBCSPpgdUsYP0IvQz8Ur3RrMoA\nAFMyb+ddQjiLTOhl7r5UAQCYL84XWWQmsgIAAKBbQi8AAADd0r0ZNqC1Zjbduw8AACy6aq3NuobD\nVlWth88BAADAvVVVWmtrTKe2f7o3AwAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADo\nltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABA\nt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAA\nuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA\n0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAA\ngG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAA\nAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUA\nAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG5tmsWbVtVykj9I8sgk1yX5\nmdbaTfvZ77ok30lyZ5LvtdaePsUyAQAAWHCzaul9dZLLWmuPS/KR8f39aUm2tdZ+ROAFAADgYM0q\n9J6W5F3j2+9K8tOr7FuTLwcAAIAezSr0Pqi1dv349vVJHnSA/VqSP6uqT1fVS6dTGgAAAL2Y2Jje\nqrosyYP389B5K++01lpVtQO8zEmttX+oqgcmuayqrmmtfWx/O27fvv3u29u2bcu2bdsOqW4AAABm\na8eOHdmxY8e6vFa1dqC8OTlVdU1GY3W/UVUPSfLnrbXHr/Gc85Pc0lr7z/t5rM3icwAAADB5VZXW\n2iENfZ1V9+aLk7xkfPslST6w7w5VtaWq7je+/f1JTkny+alVCAAAwMKbVUvvcpL3JXlEVixZVFUP\nTfK7rbUXVNVjkvzx+Cmbkvx+a+11B3g9Lb0AAACdOpyW3pmE3vUm9AIAAPRrEbs3AwAAwMQJvQAA\nAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUA\nAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8A\nAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoB\nAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltAL\nAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4Re\nAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0\nAgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2h\nFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4J\nvQAAAHRL6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL\n6AUAAKBbQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBb\nQi8AAADdEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADd\nEnoBAADoltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdEnoBAADo\nltALAABAt4ReAAAAuiX0AgAA0C2hFwAAgG4JvQAAAHRL6AUAAKBbQi8AAADdmknorarTq+qqqrqz\nqn50lf1Oraprquraqjp3mjUCAACw+GbV0vv5JP8yyV8caIeqOjLJm5KcmuSJSc6sqidMpzyYvh07\ndsy6BFgXjmV64DimF45lmFHoba1d01r7mzV2e3qSL7bWrmutfS/JRUleNPnqYDb8p0QvHMv0wHFM\nLxzLMN9jeh+W5Ksr7n9tvA0AAAAG2TSpF66qy5I8eD8P/WZr7ZIBL9HWuSQAAAA2mGptdtmyqv48\nyStaa5/dz2PPSLK9tXbq+P5rktzVWrtgP/sKyAAAAB1rrdWhPG9iLb0H4UCFfzrJsVX1qCR/n+TF\nSc7c346H+uEBAADo26yWLPqXVfXVJM9I8sGq+tB4+0Or6oNJ0lq7I8nZST6c5AtJ/qC1dvUs6gUA\nAGAxzbR7MwAAAEzSPM/evKaqOrWqrqmqa6vq3FnXA0NV1TFV9edVdVVV/VVV/fvx9uWquqyq/qaq\n/ldVHT3rWmEtVXVkVe2sqkvG9x3HLJyqOrqq/rCqrq6qL1TVjzmWWTRV9Rvj84rPV9X/qKr7Oo5Z\nBFX1jqq6vqo+v2LbAY/dqnrNOANeU1WnrPX6Cxt6q+rIJG9KcmqSJyY5s6qeMNuqYLDvJfmN1tpx\nGXXz/9Xx8fvqJJe11h6X5CPj+zDvfi2jYSh7uw45jllE/zXJpa21JyR5cpJr4lhmgVTVw5L8uyQn\ntNaelOTIJGfEccxi+L2Mct1K+z12q+qJGc339MTxc95cVavm2oUNvUmenuSLrbXrWmvfS3JRkhfN\nuCYYpLX2jdba58a3b0lydUbrUJ+W5F3j3d6V5KdnUyEMU1UPT/L8JG/LP01M6DhmoVTVA5L8i9ba\nO5LRvCKttW/Hsczi2ZRkS1VtSrIlo8lgHcfMvdbax5Ls2mfzgY7dFyV5b2vte62165J8MaNseECL\nHHofluSrK+5/bbwNFsp4hvIfSXJlkge11q4fP3R9kgfNqCwY6r8k+b+S3LVim+OYRfPoJN+sqt+r\nqs9W1e9W1ffHscwCaa19Pcl/TvJ3GYXdm1prl8VxzOI60LH70Iyy315r5sBFDr1m4GLhVdXWJH+U\n5NdaazevfKyNZplznDO3quqFSW5ore3MAZafcxyzIDYl+dEkb26t/WiS72afLqCOZeZdVS1l1DL2\nqIxCwdaq+tmV+ziOWVQDjt1Vj+tFDr1fT3LMivvH5J6JH+ZaVX1fRoH33a21D4w3X19VDx4//pAk\nN8yqPhjgxCSnVdVXkrw3yU9U1bvjOGbxfC3J11prnxrf/8OMQvA3HMsskOcm+Upr7VvjpT//OMkz\n4zhmcR3ofGLfHPjw8bYDWuTQ++kkx1bVo6rqPhkNZr54xjXBIFVVSd6e5AuttTeueOjiJC8Z335J\nkg/s+1yYF62132ytHdNae3RGk6X879baz8VxzIJprX0jyVer6nHjTc9NclWSS+JYZnH8bZJnVNVR\n4/OM52Y0yaDjmEV1oPOJi5OcUVX3qapHJzk2ySdXe6GFXqe3qn4yyRszmp3u7a211824JBikqp6V\n5C+S/GX+qTvGazL6hX1fkkckuS7Jz7TWbppFjXAwqurHk7yitXZaVS3HccyCqaqnZDQh232SfCnJ\nz2d0fuFYZmFU1faMGoLuSPLZJL+U5H5xHDPnquq9SX48yQ9kNH73PyT5f3KAY7eqfjPJL2R0rP9a\na+3Dq77+IodeAAAAWM0id28GAACAVQm9AAAAdEvoBQAAoFtCLwAAAN0SegEAAOiW0AsAAEC3hF4A\nAAC6JfQCAADQrf8fCIVv9TdurWoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1023c6210>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,9))\n",
    "plt.step(range(m),mx, label='$a_x$')\n",
    "plt.step(range(m),my, label='$a_y$')\n",
    "plt.ylabel('Acceleration')\n",
    "plt.title('Measurements')\n",
    "plt.ylim([-1, 1])\n",
    "plt.legend(loc='best',prop={'size':18})\n",
    "plt.savefig('Kalman-Filter-CA-Measurements.png', dpi=72, transparent=True, bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Preallocation for Plotting\n",
    "xt = []\n",
    "yt = []\n",
    "dxt= []\n",
    "dyt= []\n",
    "ddxt=[]\n",
    "ddyt=[]\n",
    "Zx = []\n",
    "Zy = []\n",
    "Px = []\n",
    "Py = []\n",
    "Pdx= []\n",
    "Pdy= []\n",
    "Pddx=[]\n",
    "Pddy=[]\n",
    "Kx = []\n",
    "Ky = []\n",
    "Kdx= []\n",
    "Kdy= []\n",
    "Kddx=[]\n",
    "Kddy=[]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Kalman Filter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Kalman Filter](https://raw.github.com/balzer82/Kalman/master/Kalman-Filter-Step.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "for n in range(m):\n",
    "    \n",
    "    # Time Update (Prediction)\n",
    "    # ========================\n",
    "    # Project the state ahead\n",
    "    x = A*x\n",
    "    \n",
    "    # Project the error covariance ahead\n",
    "    P = A*P*A.T + Q    \n",
    "    \n",
    "    \n",
    "    # Measurement Update (Correction)\n",
    "    # ===============================\n",
    "    # Compute the Kalman Gain\n",
    "    S = H*P*H.T + R\n",
    "    K = (P*H.T) * np.linalg.pinv(S)\n",
    "\n",
    "    \n",
    "    # Update the estimate via z\n",
    "    Z = measurements[:,n].reshape(H.shape[0],1)\n",
    "    y = Z - (H*x)                            # Innovation or Residual\n",
    "    x = x + (K*y)\n",
    "    \n",
    "    # Update the error covariance\n",
    "    P = (I - (K*H))*P\n",
    "\n",
    "   \n",
    "    \n",
    "    # Save states for Plotting\n",
    "    xt.append(float(x[0]))\n",
    "    yt.append(float(x[1]))\n",
    "    dxt.append(float(x[2]))\n",
    "    dyt.append(float(x[3]))\n",
    "    ddxt.append(float(x[4]))\n",
    "    ddyt.append(float(x[5]))\n",
    "    Zx.append(float(Z[0]))\n",
    "    Zy.append(float(Z[1]))\n",
    "    Px.append(float(P[0,0]))\n",
    "    Py.append(float(P[1,1]))\n",
    "    Pdx.append(float(P[2,2]))\n",
    "    Pdy.append(float(P[3,3]))\n",
    "    Pddx.append(float(P[4,4]))\n",
    "    Pddy.append(float(P[5,5]))\n",
    "    Kx.append(float(K[0,0]))\n",
    "    Ky.append(float(K[1,0]))\n",
    "    Kdx.append(float(K[2,0]))\n",
    "    Kdy.append(float(K[3,0]))\n",
    "    Kddx.append(float(K[4,0]))\n",
    "    Kddy.append(float(K[5,0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plots"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Uncertainty"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x106f9ca90>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAAEbCAYAAADAojkTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeYHWXdxvHv7/TtySab3gstlNDLS1lClS5Kk6YUFemg\noAISeKkqiooFX4qgNAlNBOksvUgILUAICel9s/Xs2VOf949zEpYlZbPlzJb7c11zzTkzc575zWS4\nyJ1n5hlzziEiIiIiIiKSLz6vCxAREREREZG+RUFURERERERE8kpBVERERERERPJKQVRERERERETy\nSkFURERERERE8kpBVERERERERPJKQVRERERERETySkFURERERERE8kpBVEREOo2ZfWRme+dpX9eb\n2fmbsP08M9uvK2vKJzPb3MzeM7N6MzvH63q6UlddV2b2lplt1dntiojIximIioh0M2aWMbNxrZZN\nNbO/e1DLPDOb0tbtnXNbO+de7oq2W/22AjgZ+Eur9prMrKHF9PuW5eWmbqMj5wC4BHjeOVfqnLul\nM+tqi1ztcTMb0Gr5jNw1PGoT2tngOdiU62oT/Rq4ugvaFRGRjQh4XYCIiLRJXgOUmQWcc6ncfq2L\ndtORtr8LPOGci7dq7zDn3AsdLSyPOnIORgOvr2tFiz+/ruSAucAJwC25/W4DFLBp1+t6z0FnHIeZ\n7UQ2bBYDd5H9u892wD+BfwF/MbPBzrnlHdmPiIhsGvWIioj0DEbuL/e5HqSLzex9M6s1s/vNLLx2\nQ7ORZvawma0ws1Vm9ofc8mFm9lBu+VwzO/crO8i2e4mZvQ80mtm9wCjg8Vzv4o9z2/3UzD7P3RI6\n08yOatXGlI3Vmevdbdn2T8zsx2Y2rVVNvzezm9dxPg4GXmr3ydzAucjV/eNc3Y1mdpuZDTaz/+SO\n+Vkz67cJbbX1HKw5v5ea2aLcvj5dV2+hmb0AVAK35Lab2OLP7wOgwcx8ZralmVWZWU3u9tbD23uc\n6/EP4JQW308F7qZFsNzI9bKu66D1cfitxW3VZjbezKrNbPsW53+lrefWXefcO0AT8H/Oududc7cC\nfwQeyP1DxnTgoI0cp4iIdDIFURGRnukYsn95HgtsS7aHEDPzA/8GviDbYzYcuM/MDHgcmAEMA/YD\nLjCzA1u1ezxwCFDmnPsOsIBsL2OJc+7XuW0+B/Z0zpUCVwH/MLPBuXWte8LWWadz7uRWbf+KbKg5\n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\nXpciIiIiIiLS7dTU1HDaaadx4okncuyxx5JOp7+y/pxzzuHEE0/0qLr169ZBtLy0gN/vdwc3zzqX\nWQtXeV2OiIiIiIhIt3LFFVdw9dVX89e//pVp06bx1FNPrV2XTCa58847icfjHla4bt06iAL84JA9\n2D7wHQ68+VyvSxEREREREek2PvvsMyoqKhgxYsTaUXMrKirWrn/nnXeIxWJMmTLFqxLXK+B1AW3x\n1KX/y7CrJ3Pp3x7hxu9+0+tyRERERESkB7Cr2vX4YqdwV3b9s60rV67ke9/7HgC33XYb48aNY5dd\ndlm7/uWXXwZg33337fJaNlW3HqyopVsef4XzXzmOT8/7kIkjBnRauyIiIiIi0j1psKK2Wb58OSNG\njGDq1Klcdtlla5cfdthhTJ8+naVLl7a5LQ1W1Mo5h+/FNv5jOOi3F3hdioiIiIiISLcxbdo00uk0\nxx577NplmUyG1157jcrKSu8K24AeE0QBnrnkOhba61zx98e9LkVERERERKRbeOuttxg2bBgTJ05c\nu+zDDz+krq6uW96WCz0siA7qX8Sv9ryd6z44iy+W1nhdjoiIiIiIiOdWrFjB6NGjv7LsueeeA7rn\n86HQw4IowAVHVTLJfxQH3nSR16WIiIiIiIh4buedd2bevHlkMhkAZsyYwdVXX83w4cO/0kvanfSI\nUXNbe+aSGxh53TZcfd9/+MUJ3/C6HBEREREREc/8/Oc/Z8GCBRx66KGMHz+e4uJi0uk0++23n9el\nrVePDKJDyou5YY/bufSN7/Ld/T5k1KAyr0sSERERERHxzF133bX287Rp02hqauKUU07xsKIN6zGv\nb1mXrS75IWmXYtavbuvS/YiIiIiISP7p9S0bd9BBB/H666+zZMkSSkpKyGQy7L777gwfPpyHH354\nk9vT61va4Jmf/JI57jmuuvdJr0sRERERERHJu3feeYc99thj7e245513HuFwmL///e9el7ZB7eoR\nNbPNgftbLBoHXOGc+32Lbbq8RxTglsdf4fxXj+HVU99m961Gdfn+REREREQkP9QjunHPPfcczzzz\nDLFYjOXLl7PHHntw3nnn4fO1r88xXz2iHb4118x8wGJgF+fcwhbL8xJEAQ659pe8vOphll33MsUF\nobzsU0REREREupaCaP71pFtz9wfmtAyh+favn/6YEgaz19WXeFWCiIiIiIiItFFnBNHjgXs7oZ12\n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\nvsPNx1/IfttP8LosERERERHJs44E0Y6OQnM+8DGgxNlHHLHbVsz61W28d+YnlIX7c8ADuzP8om/x\n1/+84XXujxXQAAAf0ElEQVRpIiIiIiLSQ7S7R9TMRgB/A64FLlKPaN+0oibKObf/jUeW/YZwuoKT\nJp7NDacco+dIRURERER6OU9uzTWzB4HrgFLgxwqifVsimeaq+5/g1ul/ZHX4PXYNncavj/8h/zNp\ntNeliYiIiIhIF+hIEA20c4eHASucczPMrHJ9202dOnXt58rKSior17up9HChoJ9rTz6Ca08+gqff\n+YyfPfRn9vr7DgyK/w/n7nY2l377AL2PVERERESkB6uqqqKqqqpT2mpXj6iZXQecDKSACNle0Yec\nc6e02EY9on3cipooP77rXh6c/0fSviiHVPyIm045lfHDyr0uTUREREREOsjT17eY2T7o1lzZgEzG\n8X9PvcH1z/+R+aEnGJ04hB/tfhoXfXOKeklFRERERHqo7hBEL3bOHdFquYKofM2cJau59J57eGLJ\n7aT8dexV8j2uPea77L7VKK9LExERERGRTeBpEF1vwwqisgGZjOPeF9/lxmfuYKbdT3l8Z07Z+nSm\nHn8EpUVhr8sTEREREZGNUBCVHm11fYzL732Y+z69nbrIh2zN8Zy/70l874Bd8PnadV2LiIiIiEgX\nUxCVXqPq/bn872P38ErdP4AMe5ScyGWHn8gBO070ujQREREREWlBQVR6nUzG8ffn3+HmF+7hg8z9\nFCRGc9DQE7nqmOPYeuxgr8sTEREREenzFESlV2tOpLjpkee5/e1/8EXocQY2785RE47n8m8fyejB\n/bwuT0RERESkT1IQlT5jRU2Uqx54jIdn/ZNlBS8wKLY3R0w4RqFURERERCTPFESlT1q0sp7rHnqc\nR2Y9yLKCF6iI7cUR44/hsm8dydih/b0uT0RERESkV1MQlT5v0cp6rn/o3zwy60GWFjxPRWxPvjHm\naH5yxOF6plREREREpAsoiIq0sKS6geun/ZvHZj3KwvDTlMQmsWfFkZx74JF8Y+fNvS5PRERERKRX\nUBAVWY/6aJzfP/4i9814jE/dYwRSZWxfeCSn/c+RnHbgrgT8Pq9LFBERERHpkRRERdoglc7w9+ff\n4bZXH2N646Mkg9WMzxzKkVsewrmH7c+oQWVelygiIiIi0mMoiIq0w/MzPudPzz7JS0ufpLrwNfpF\nd2KPQYfw/cpDOHy3rfD52vXflIiIiIhIn6AgKtJBK2qi3PLEizz84ZN8mn4SzLG57xCO3voQzj50\nX4aUF3tdooiIiIhIt6IgKtKJMhnHv9/+hL+++CSvLX+S2qL/UhbdgZ3KD+DE3Q7kxH13JBT0e12m\niIiIiIinFERFutCKmih/eeplHvvwWWY2P0sivJhh8SnsM/IAfrDfgey97VivSxQRERERyTsFUZE8\nem/OUv7y9HM8M+cZ5geexZcqZoJ/ClPGVXLmAfsyefxQr0sUEREREelyCqIiHslkHI+8/hH3vv4i\nbyx9kWWRlwgmBjEhsC8HTtyXM/avZNKYQV6XKSIiIiLS6fIeRM0sArwEhIEAMM05N7XVNgqi0uck\nkmkeeu0D7n/zRd5c/iIrIq8Qjo9gs9C+7DdhL07ddy/1mIqIiIhIr+BJj6iZFTrnmswsALwKnO+c\ne6vFegVR6fOaEykeeGkGD7z9ItNXvcLKyGv4E+WMsb3Yc9RefOd/9mK/7SfoVTEiIiIi0uN4emuu\nmRUCrwA/dM79t8VyBVGRVlLpDI+9MZMH33qFN5a8wiLfK2Bphqb2ZNche3HkDnvw7T23ozAS9LpU\nEREREZEN8qpH1Ae8C4wHbnHO/azVegVRkY3IZByvfjSPf7zyCq/Mf5UvUm8QL/iCsuiObFG8O1M2\n250T995dz5mKiIiISLfjdY9oGfAIcK5zbmaL5e7KK69cu11lZSWVlZUd2pdIX7BgRR33VL3F0x+/\nzke1b1Bd+CaBeAWjbA92Gbo7h07ehaP22IbigpDXpYqIiIhIH1JVVUVVVdXa71dddZW3o+aa2RVA\nk3PuphbL1CMq0gkSyTRPvP0Jj/z3Dd5c/AYL0m8TL/iC4uh2TCjYhT1G78LRu+7CvtuN17OmIiIi\nIpI3XoyaOxBIOedqzawAeBq4wTn3ZIttFERFusiS6gb++cp0npn5Nh9Uv80y/9tk/FHK4zuzZenO\n7DV+J765647sOHG4wqmIiIiIdAkvgug2wF2AH/ABDzjnrmm1jYKoSB69N2cpD77+X16a/TazGqZT\nHZoOGAMTO7J56Y7sOW5HjtplR3befITCqYiIiIh0mKfPiK63YQVREU9lMo7/zlrEo29P59W505lV\nP51VoemAY0BiRyYUT2a30dtz8OTJ7Lf9BAJ+n9cli4iIiEgPoiAqIm2SyTimz17Mo2+/yxtz3+PT\n2vdY6X+PVHglxdFtGB2ezOShkzlg0vYcvuvWlJcWeF2yiIiIiHRTCqIi0iHzl9fy6Jvv89Ks9/hw\nxXssSs+guWgWodhoBrlt2azfNuw6ZlsOnrwte0ward5TEREREVEQFZHO1xhL8Oy7n/Hchx8wfdEH\nzI1+yOrAB6SDdRQ3bc3I0LZsPWgb9pgwiYN2mMSWoyq8LllERERE8khBVETyZs6S1Tz5zke8NOt9\nZq78iMWJmTQWzIRMkLL41oyMTGLrQZPYY+IkvrHjJMYPK/e6ZBERERHpAgqiIuKpTMbx7udLePa9\nmbw1dyYfV3/EktRMogUf40sVUZrYkhHhLdli4JbsMm5L9tt2SyaPH6rRe0VERER6MAVREemW1ozc\n+8KHn/D2Fx/zafUnLEl8QkPkE5wlKW7ekqGBLZnQbwsmj9ycPbfYnL23GUdxQcjr0kVERERkIxRE\nRaTHmbVwFc++9wlvzvmET1Z8ysLYLGp8s0gVLiLYNIr+mc0ZWbg5W1Vszs7jNmefrTdj6zGD1Ysq\nIiIi0k0oiIpIr1EfjVP14Rxe+3QW7y+axZzaWSxLzSIamY3zxSmITWCgTWRU8US2HDyRncZOZO+t\nJ7L5iIEKqSIiIiJ5pCAqIn3CF0trePmjz3lrzmd8vGw28xpmsyozm6bIbAAKmsczwCYwsng8mw0c\nzw5jJrD7FuOZPH6oXjkjIiIi0skUREWkT8tkHLMWreK1j+fw7rw5fLL8cxY0zGFlag7R8BwywXrC\nTWPp7yYwNDKOceXj2HrYOHYYP5Y9txpLeWmB14cgIiIi0uMoiIqIbMCS6gZenTmXd+bM4eNlc5lX\nO5fliS+o880lWTgfX7ycosQ4BvrHMrJkHOMHjGHbkWPZacIYdtpsBJFQwOtDEBEREel2FERFRNop\nlc4w4/MlvDlrLu8vmMtnK+eyODqPVal5RIPzSEeW448NpTg1hoGBMYwsGcv4AaPZavhodhg3mp02\nG6FRfkVERKRPUhAVEekijbEE73y2iOlz5vHhoi+YUz2PxY3zqE7PJxpYQLpwCb7mCgoToyn3j2ZI\nwSjG9h/NFkNGs/Wokew4YSSjB/fTQEoiIiLS6yiIioh4pDmRYsbnS5gxdwEfLZrP5yvns6hhASuT\n82mwhcQjC8AcodhISjIjGRAcyfDiUYwpH8kWQ0eyzeiRbD9+OEPKi70+FBEREZFNoiAqItKNLVhR\nx/TZC/lg/gI+W76Q+TULWdq0gNWphUT9i0gWLMLSEULxEZS4EQwIjGBo8QhG9x/BhEHD2XLEcCaP\nG87YIf3VsyoiIiLdhoKoiEgPlsk45ixZzYy5i/h44SJmr1jEgtpFLIsuYnVqEY2+xSQii8GXIBAb\nTmF6GP38w6mIDGdEyXDGDhzOxCHD2GLEULYdO5SBZYVeH5KIiIj0AXkPomY2ErgbGAQ44K/Oud+3\n2kZBVESkEy1b3cj7c5cwc+FiZi9bzLzVi1nSsJhVicXUZ5bSHFhKqmAJliokGB9KUWYY/QPDGBgZ\nyrCSoYwqH8qEwUPZbNgQthk7lGEDSrw+JBEREenBvAiiQ4Ahzrn3zKwYmA4c5Zz7pMU2CqIiInm2\npnf1o/lL+XTxEuasWMLC2qUsbVzC6sQy6jNLifmXkYosBYxA8xAK00Mp9Q2lPDSEwUVDGFY2mDED\nhjBhyBA2HzGYLUcN0sjAIiIi8jWe35prZo8Cf3DOPd9imYKoiEg3lck4llQ3MHP+Mj5dvJQ5y5ey\nsGYZyxqXsyq2jNr0MqIsJx5cRiayEkuUEUoMpiAzmFL/YMpDgxlUNJihpYMYVT6Y8YMHs9nwbGjt\nVxzx+vBEREQkDzwNomY2BngJmOSca2yxXEFURKQXSKUzzF5czccLljFn2XLmrVrO4trlLG9cQXXz\ncurSy2lkOYnACtKRFZCOEIwPIpIeRJFV0C84iAGRQQwuHsTwfoMYPXAQYwZVMHFYBROGDaAwEvT6\nEEVERKQdOhJEAx3ccTEwDTi/ZQhdY+rUqWs/V1ZWUllZ2ZHdiYiIBwJ+H1uOqmDLURXANhvcNpNx\nLFxZx6cLVzBn2Qrmr1rJopoVLGtYwezVs/nvstdoyKwg5ltJIrgSF16NJYsJJCqIpCsosgrKAhWU\nRyoYVFTBkNKBDOs/kDEVFYwbMpAJwwYyqF+RRg8WERHxQFVVFVVVVZ3SVrt7RM0sCPwb+I9z7uZ1\nrFePqIiIbFAqneGLpTXMXrKSuctXsmDVShbXrmR5w0qqY6uoTayiIbOKGKuI+1eRDq8EXxpf80BC\nqYEUuIEU+wZQFhxI/8gABhYNyIbXfgMYOWAAYwcPZNzQAQwbUKLwKiIi0sm8GKzIgLuAaufchevZ\nRkFUREQ63aq6JuYsqebzpStZWF3NkppqltatYlVTNatj1dQlV9GYriZm1bnwWg3+ZixeTjA5gHCm\nnCIbQElgAGWhAZQXlFNRPIDBJeUM6defEQPKGVVRztgh5QzpX6wAKyIish5eBNE9gZeBD8i+vgXg\nZ865p1psoyAqIiLdQmMswdylq/liWTULVlWzpGY1S+uqWdFQTXWsmvpEDQ2p1UQzq2m21SQDq0mH\nVoM/nguw5YQy/Smw/hT7yikJ9qd/pJzywv4MLOrPkLJyhvbvz/AB/RlV0Z9RFf0oLy3w+rBFRES6\nlOej5q6zYQVRERHp4eqjceYtr+GLZdUsXl3D0poaltWvZlVjDatjNdQ0r6YhWUM0U0OM1SR8NaQC\ntWRCNYDhi/cnkOpPONOfiPWjyNefkmB/ysL96Bfpx4CiflQU92NQWT+G9uvHiIH9GT6gjJGDyoiE\nOjSMg4iISJdTEBUREelGMhnH6oYYC1bUsnBlDYtX17CstpYV9TWsitZSE6ulrrmW+mQt0XQtsUwt\nzVZD0l9LOliLC9VDqgBfooxguh+hTBkR60ehr4ziQD9KQmWUhcvoX1BGeVEZFSVlDCorY3C/MoaV\nlzF8YBnDBpQQ8Pu8PhUiItKLKYiKiIj0IpmMY1lNIwtX1LKoupbltXUsq61lZUMt1dG6XJCtoyFZ\nRzRVR8zV0ezqSPrqSPrryITqINAEyWL8yTIC6VJCmTLCVkqBlVEUKKU4WEZpuJR+kTL6F5ZSXlTK\nwJJSKkpLGdyvlCH9Sxk2oFSjFIuIyHopiIqIiMhXJJJplq5uYNGqOpbV1LO8to4VdXVUN9ZTHa2j\nNlZPXbyOhkQ90VQ9sXQ9za6euNWT9NWT9teTCdZDoBkSJfhTJQTSpQRcCWFXSsRXQqGvlKJgKcXB\nEkrCJZRFSuhXUEJ5cSkDiksYWFJCRVkJg/qVMKR/CUPKi9VLKyLSiyiIioiISJdoTqRYWt3AspoG\nltXUs6KunlUNDVQ31lMTbaA2Vk99vIGGeAPRVAPRVD3NmQbiroGENZD0NZD2N5AJNmR7aVMF+FLF\n2WCbKSHoiglbCRErocBfTFGghKJQMSWhEkojxfQrKKGssJj+RcUMLClhQEkxFWXZaXD/YkoLw+qx\nFRHxiIKoiIiIdHupdIZVdU0sq2lgeU0DK+saWNXQwOrGRmqiDdTFGqlrbqAh3khjopFoqoFYqpHm\nTCPNuWCbsigpXyOZQCMu2Ai+FCSLsuE2XUwgU0zIFROyIsJWTIG/mIi/iKJgMUXBIkrCxZRGiimN\nFFFaWES/wiL6FxUxoKSYASVFDCgtoqKsiIFlhQq4IiIboSAqIiIifVJTc5KVdVFW1Daysq6RVfWN\n1ESj1DQ2UheLUtvUSH1zI42JKI2JRpqSUZpSjTRnosQzUeKukaRFSVmUtC9K2h/NBtxAMyQLsFQR\n/nQR/kwRAVdE0BURskLCVkTEn50KAoUUBYsoDBVSEiqiJFJESaSQssIiygoL6VdYSP+SIsqLC+lf\nXMiA0kLKSwoIBf1enz4RkQ5REBURERHpRGt6b1fVRVlVH6W6IUpNY5SaaJTapij1TVHqm6M0xpuI\nJpqIJqPEkk00paLEM03ZoOuiJF2UlMVIWRNpXxOZQBTnb4JgDFJhLFWIL12IL1NIIFNIwBUSpJCQ\nFRLyFRL2FRLxF1IQKKQgUEBhsJDCUAHF4UJKwoUURwooLSikrLCQ0oICSosKKC8upF9RAeW5wKtX\nAYlIV1EQFREREelBMhlHbWMz1fVNrKqPUhuNURttojbaRF1TE/WxJhpiTTTEm2iMN9EYjxJLxWhK\nNhFPx2hONxHPxEhkmki4JpLkwq7FSPubyPhiuEATBGLg/Nlnc9PZyZ8pxO8KCLgCAhQQsgKCVkDY\nV0DYX0DEX0AkUEBBsIDCYAEFwUgu/BZQHCmgJFJASUEBJZEIpYUFlBUVUFoYoX9xAWVFEfoVRzQo\nlUgfoSAqIiIiIl+TyTia4kmq65uoaYyxuqGJumiM+qYY9bHs1Nicm+IxookYTckYsdzUnIrRnI6R\nyDSTyMRIuBhJFyNJjLQ1Z4OvrzkbfP0xnL8ZAnFIhyAVyYbfTARfJoLfFeB3EYIUELAIQYsQsgJC\nvghhf4SQP0LEHyESiBAJRigIRCgMfTkVhSMUR76cSgoilBZ+OZUUhulXFCESCuj5XpE8URAVERER\nkW4hlc5QH41TF22mrqmZ2sYY9bFm6qMxGpqbaWxupiGWDb6xRJymRDNNiWZiqWaak800p5ppTsWI\np5tzvb5xkq6ZpGsm5eKkaM6F4OyU8cdwvnguBDcDDlIRLBPG0pFcEA7jdxF8hAm4CAHCBC1CwMKE\nfBGCFibkjxDyhwn7w0QCkew8GCYSCFMYilAQDFMQClMYClMYzk5F4TBFkTAlBRFKCsIUF4QpyU2l\nRWHdFi29noKoiIiIiAjZVw6tCcINsTj1Tc3URWM0NseJxuM0xeM0NjfTlIgTjTcTS8RpTsZpSjbT\nnIoTT8VpTjUTT8WJp5uzQTgTJ5FZE4TjLQJxnLTFyVicjC+eDcS+OM4fB388W1A6BOkwlgnjWzO5\n7OR3YfyECBAmYGumECFfmKAvTNCX/RwOhAn5Q4T9YcKBEJFALiQHQxSEsvNIMERROExBKDcPhygM\nhyiOhCmKZD+XFIYpjoQoLghpsCzpFAqiIiIiIiLdzJpQ3BDLTtHmBI2xeDYU54JxLJGgKR6nKRHP\nheIEsWQ2HMdTCZpTcRLpRC4Yx0lmEiTScVIuQSKTnWeDcYK0S5AmTtoS2XC8Zu5L4HITvkT29mln\nkA5DOoRlspPPtZzC+F0IP7nJQgTWTkECFiLo+3IK+b+cwoEQQX+QcCD7eU1QjgRDhANBCkIhwsHs\nvDAUIhIKUhjOzovCIYoiIQrCwVyADlIYCeq5425KQVRERERERNokk3EkUmkaYwmizQkamrIhORpP\n0JSbYvEETYnE2qAcTyZpTiayUypBPDdPppPEU4lsSE4nSaQTJDNfTqlMkqRLrA3MaZKkXZI0CTK2\nZp7AWTIXnBM4XxJ8yVxwTkIgAekAZILZ4OyCufAcxOeC+Fx2mY8gfhfKzgnhtyB+gvhzwTkboIME\nfEGCvlBuHiTo/3Ie8n85DwWy83Ag+zkczH4OB4NEgtn5miAdCQYJBQMUhILZKfzlfE2YDgX8ve75\nZQVRERERERHplVoG56Z4kmhzglg8mQvM2Xlz8st5LBeg48kk8VSSROrLeSKVXBugE+kkyXSSZKbl\nPEHKZT+nXZJUJknKJVsE6K8G6Qy5yZI4S+UCdbJFmM7Os1MG0kHIZEO1rZncmimQC9ZBjNxnAvgJ\n4rMg/rWfAwQsiN8CuZAdJODLLfMF1obqgC9AwBfIBe3c3B/Ihe0A4UCQYCCw9nMoECAUCBAOZj/v\nvsU4Jo8fusE/m44EUT1BLSIiIiIi3ZbPZ0RCgR4/+FMqnaGpOUlzIkUskaQpniQWTxJLJIknUzQn\nsp8TqeznRCpFczJJPJn9vCZYJ9OptfPEmvmaUJ1OkcwkSWVSxFNxoploLkynSGdS2VDtUqQySdKk\nSLsUaZckw5fzDCnSJDll4Tn8cfx3uux8tLtH1MzuAA4FVjjntlnHevWIioiIiIiI9FId6RHtyFO/\ndwIHd+D3Ij1CVVWV1yWIdJiuY+ktdC1Lb6DrWKQDQdQ59wpQ04m1iHRL+p+F9Aa6jqW30LUsvYGu\nY5GO9YiKiIiIiIiIbDIFUREREREREcmrDr2+xczGAI+vb7Ci9pclIiIiIiIi3V23e31LewsSERER\nERGR3q3dt+aa2X3A68BmZrbQzL7XeWWJiIiIiIhIb9WhW3NFRERERERENlWXDFZkZgeb2admNtvM\nLu2KfYh0NjMbaWYvmtlMM/vIzM7LLS83s2fN7DMze8bM+nldq8jGmJnfzGaY2eO577qOpccxs35m\nNs3MPjGzj81sV13L0hOZ2YW5v1t8aGb3mllY17J0d2Z2h5ktN7MPWyxb73VrZj/L5b9PzezAjbXf\n6UHUzPzALcDBwFbACWa2ZWfvR6QLJIELnXOTgN2As3PX7k+BZ51zmwHP576LdHfnAx8Da2570XUs\nPdHvgCedc1sC2wKfomtZehgzGw6cC+yYG+DTDxyPrmXp/u4km+laWud1a2ZbAceRzX8HA38ysw1m\nza7oEd0F+Nw5N885lwTuB47sgv2IdCrn3DLn3Hu5z43AJ8Bw4AjgrtxmdwFHeVOhSNuY2QjgEOA2\nYM3AcbqOpUcxszJgL+fcHQDOuZRzrg5dy9IzBYBCMwsAhcASdC1LN+ecewWoabV4fdftkcB9zrmk\nc24e8DnZXLheXRFEhwMLW3xflFsm0mPkXk20Pf/f3v2H+lXXcRx/vmBO5makCJo024j5R38k1xFq\nVqYOIar9UZQVxiykP130A8yhSIEREQ6t/lAsYn/MLMPWH2XDxMDBKjdcKYTUVrlyajLSaeD07R/n\nc/Hsy/1ud3jv997jfT7gy/ecz/mcz/ncL+8L5/39fM7nC7uBs6vqUDt0CDh7gbolzdZtwNeB13pl\nxrGGZi3wbJIfJ9mT5K4kKzGWNTBVdRD4HvBPugT0cFXtxFjWMI2L23Pp8r5pJ8wB5yMRdfUjDVqS\nVcB9wOaqeqF/rLrVvYxxLVpJPgY8U1V7eWM09BjGsQZiGXAh8MOquhA4wsjURWNZQ5DkDLpRpDV0\nN+urklzTr2Msa4hmEbfHjen5SEQPAqt7+6s5NjuWFq0kp9Aloduq6v5WfCjJOe34O4BnFqp/0iy8\nH9iYZD+wHbgiyTaMYw3PU8BTVfXHtv9zusT0aWNZA7MB2F9V/62qo8AvgEswljVM4+4nRnPAd7ay\nseYjEf0TsC7JmiTL6R5a3TEP15HmVJIAdwNPVNXW3qEdwKa2vQm4f/RcabGoqhuranVVraVbDON3\nVfV5jGMNTFU9DfwryfmtaAPwOPArjGUNyz+Ai5OsaPcaG+gWkzOWNUTj7id2AJ9JsjzJWmAd8Ifj\nNTQvvyOa5CPAVrpVwe6uqm/P+UWkOZbkA8DvgX28MZXgG3T/RPcC5wEHgE9X1eGF6KN0MpJcBny1\nqjYmORPjWAOT5AK6RbeWA38DvkB3b2Esa1CS3EI3OHMU2ANcB5yOsaxFLMl24DLgLLrnQW8GfsmY\nuE1yI/BFujjfXFUPHLf9+UhEJUmSJEkaZz6m5kqSJEmSNJaJqCRJkiRpokxEJUmSJEkTZSIqSZIk\nSZooE1FJkiRJ0kSZiEqSJEmSJspEVJK0JCR5Ncne9tqT5F1JHmnH1iT5c9u+oP0e9pu93pYkf0ny\nWLvm+1r5l5OseLPtS5I0ZMsWugOSJE3IS1U1NVJ26Qz1poD1wK9n23CSZVV1tLd/CfBRYKqqXkly\nJnBqO7wZ2Aa8fDKdlyTprcQRUUnSkpXkxZH9U4BvAle3UcxPJVmZ5EdJdreR1I2t7rVJdiR5ENg5\n0vQ5wHNV9QpAVT1fVf9Jcj1wLvBQO48kVyXZleTRJPcmWdnKDyT5TpJ97drvntcPQ5KkCTIRlSQt\nFSt6U3Pva2XVr9ASx5uAe6pqqqp+BmwBHqyqi4ArgO8mOa2dMgV8sqouH7nWb4HVSf6a5AdJPtTa\nvx34N/DhqroyyVmt/Suraj3wKPCVXt8OV9V7ge8DW+fsk5AkaYE5NVeStFS8PMPU3JmkvaZdBXw8\nydfa/qnAeXSJ4s6qOjzaQFUdSbIe+CBwOfDTJDdU1U9Gql4MvAfYlQRgObCrd3x7e78HuG0WfZck\naRBMRCVJOrFPVNWT/YIkFwFHxp1QVa8BDwMPt4WQNgGjiSh0yeznZtGHOnEVSZKGwam5kiQd63/A\n6b39B4Drp3eSTI+q9kdNj5Hk/CTrekVTwIG2/QLwtra9G7h0+vnP9jxq/7yre+/9kVJJkgbNEVFJ\n0lIx04hizbD9EHBDkr3ArcC3gK1J9tF9gft3YGOrP26UchVwR5K3A0eBJ4EvtWN3Ar9JcrA9J3ot\nsD3J9Kq6W1p9gDOSPAb8H/jsyfyxkiQtZqlypo8kSYtNkv3A+qp6fqH7IknSXHNqriRJi5PfFEuS\n3rIcEZUkSZIkTZQjopIkSZKkiTIRlSRJkiRNlImoJEmSJGmiTEQlSZIkSRNlIipJkiRJmigTUUmS\nJEnSRL0O/qYnzUBN1eYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x102394910>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,4))\n",
    "#plt.plot(range(len(measurements[0])),Px, label='$x$')\n",
    "#plt.plot(range(len(measurements[0])),Py, label='$y$')\n",
    "plt.plot(range(len(measurements[0])),Pddx, label='$\\ddot x$')\n",
    "plt.plot(range(len(measurements[0])),Pddy, label='$\\ddot y$')\n",
    "\n",
    "plt.xlabel('Filter Step')\n",
    "plt.ylabel('')\n",
    "plt.title('Uncertainty (Elements from Matrix $P$)')\n",
    "plt.legend(loc='best',prop={'size':22})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Kalman Gains"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x106f6a810>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nJgxDRo0albbehAkTmDRpEu+//z6JRCLl2jfffFOle3Xt2jXlvGTCnXQz+Xbo0IGVK1dmHEfZewJs\nt912LF68eKvxtm/fnjVr1qRts2TSnrfffpthw4aVe+S2Nj6v6sRekUWLFtGnTx9yygxSadasGd27\nd+ftt98u95o99tijWvdYuXIlffv2BeCzzz4jJyeHgQMHUlBQwIsvvshhhx1W4/glSarP3nwzeiz3\nySfh7LPhtddg993jjkpSVWRjDGlzIC8IgmIgD3DRwyrIy8vjiSee4Gc/+xljxowhkUgwZsyYlDpj\nxoxh2LBhHHvssVx++eV07tyZFi1asGTJEgYPHlwu4apIs2bNqlVeVk3iqKjtqEe/cvvssw8vv/wy\nn376aekkQRB9ZkceeSRAucSupnGmk0ns2VR2TPHWjBgxovT4xRdf5IgjjgCgdevWJqOSpEanuBhm\nz44S0U8/hcsui3pHt9027sgkVUdGCWkYhl8EQTAa+BwoAP4ZhuFzW3mZNmvVqhWPP/44AwYM4NZb\nbyUMQ2655ZbS63fffTddunTh6aefTnldVSczypa6juPUU0/l5ZdfZvLkyWln/a1Iffm80unatSvz\n58+nuLg4JeEtKiriww8/TNsrm4k5c+ZwwQUXZLVNSZLqg7Vr4a67YNy4aHKiK66An/8csry0uKQ6\nktEk10EQdAAGALsBnYG2QRD8omy966+/vnTLz8/P5JaNTqtWrZg9ezZHH300Y8eO5fLLLy+9VjKO\nMblnr6ioiL/+9a+1GlPZx2DrOo7zzz+fHj16MHLkSB577LG0ddL1Vsb1eVXFySefzPLly5k8eXJK\n+Z133smKFSs4+eSTM2q/uLiYZ599lkQiwddff837779f2kMKcPPNN2fUviRJcfvsMxg2DHbbDV55\nBe65B15/HU4/3WRUqmv5+fkpOV4mMv31/QmwKAzDlQBBEDwK9APuTa6UaZCNXUlSetJJJzFu3DgS\niQTjxo3jlFNOYcSIERx//PGcfPLJrFmzhvvuu48WLVrUajxlk71sxlGVx15btWrFk08+yYknnsig\nQYPo378/Rx99NB07dmTNmjXMnz+fBx98kObNm7PzzjvXSpw1jb0iw4cP5+GHH+aSSy5h3rx57Lff\nfrz11lvcdddd9OjRg+HDh2cU2+23386ll17KBx98wDPPPENeXl7pBEazZs1in332yah9SZLi8vrr\n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\nEARht27dwiAIwkGDBoUbN25MW3fjxo1hUVFRufLrrrsuDIIgnDt3brl2p0+fXlo2derUMAiC8IAD\nDgg3bdpUWj579uwwCIIwNzc3fPPNN1Pu16lTp/Dggw+ucRwl9+zdu3fKPb/44ouwZcuW4ZlnnlnZ\nxxOGYRhut9124bbbbluuvLi4OFy+fHnKVlBQUKM4K/u8Mol90aJFYRAE4Q033JBSfu2114ZBEIQT\nJ05MKR8/fnwYBEF43XXXlYujR48eKe9va5566qnwT3/6U3jMMceEK1asKC2/5557woEDB1apjab0\nuyhJjdWqVWH4l7+EYefOYfiTn4ThU0+FYSIRd1SSGrPN3yFrlC82yB7S/Py6G3Hfv39YK+0uXboU\ngK5du5Kbm5u2TnJ5UVERa9eupbi4mKOOOoobb7yRuXPncuCBB271XkOHDk2ZvOfQQw8F4KCDDqJ3\n794p9zvwwAN59dVXM47j4osvTrln586d2WOPPVi4cOFW412zZk3pxDzJ3n//ffbdd9+UspEjR3LV\nVVfVOM50Mom9IjNnzmSHHXbgwgsvTCkfMmQIN9xwAzNnzuSPf/xjyrWhQ4dWeUKilStX8t577/G7\n3/2Onj178vLLLzNw4EAAHnrooXK9r5KkxqdkmZZ77omWbnnqKejVK+6oJKlyDTIhra0ksS6NGDGC\n/Px8Ro8eTRiGjBo1Km29CRMmMGnSJN5//30SiUTKtW+++aZK9+paZgGxkgl30s3k26FDB1auXJlx\nHGXvCbDddtuxePHircbbvn171qxZk7bNkkl73n77bYYNG1bukdva+LyqE3tFFi1aRJ8+fcjJSR22\n3axZM7p3787bb79d7jV77LFHldt/9tlnOeuss/jvf//LRx99RJ8+fYDoCYhXXnmFP//5zzWOXZJU\nv732GoweDfn5cMEF8O67kObvupJULzXIhLQxyMvL44knnuBnP/sZY8aMIZFIMGbMmJQ6Y8aMYdiw\nYRx77LFcfvnldO7cmRYtWrBkyRIGDx5cLuGqSLNmzapVXlZN4qio7ahHv3L77LMPL7/8Mp9++mnp\nJEEQfWZHHnkkQLnErqZxppNJ7NlUdkxxZUpm07355ps56qijSnuY33nnHVatWsXhhx9eKzFKkuJR\nXAyPPRYlosuWwRVXwLRp4AMxkhoaE9IYtWrViscff5wBAwZw6623EoYht9xyS+n1u+++my5duvD0\n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\ndhpsu23c0UmSJElSei770oAtXRo9kjt9OqxdGyWhr7wCu+8ed2SSJEmSVLvsIY3B+vXRZER33w2v\nvQYnnxwloocf7iO5kiRJkhoWe0gbgKKiaDzovfdGS7QcfDD84hfw8MPQpk3c0UmSJElS3bOHtBaF\nIcydGyWhDz4Iu+0WJaGnnw477hh3dJIkSZKUOXtI65kPPojWCr33XmjWLEpCHRcqSVIVhWH5LZFI\nX95Ytored3XrZLNeuusVvaa6bVW17cpeV9Fxdc+r005VX5ut4+q+pqJ9pu3UtM2axliTOnVxj8r2\nmb6+Ovuy96xKXDV9TwD//jcccAC1xYQ0Sz76KOoFfeghWLkymh33gQein11Qo78VSFItKPmPLJHI\nzpaurZqWVbdONo4z2ddl3aoeb+08G22k29Jdr2pZ2WvJgiDacnK2HDfmLfk9Z1Inm/XSXa/oNdVt\nq6ptV/a6io6re16ddqr62mwdV/c1Fe0zbaembdY0xprUqYt7VLbP9PXV2Ze9Z1XiymRfi3xkNwOf\nfBIloA89FM2We8opUSJ6yCFOTiSVE4bRYOri4i3b1s4ru5ZIVFy3outly5LPK7pWdl/ZteT91soq\nO053XlFZda+HYfSfS05O+i0Iokc7KrqeXCddOyVlye1UVC+TOtk4rsm+OnUqe01F8WztXmWPt3Yt\nG21sLRms7J5VbSfdNUlSg+E6pHVo0SJ45JEoCf30U/j5z6Mk9PDDo+9MUoUSCdi0actWVFT5cVFR\n1Y/TnVd1K0n2yh5XdK3svmxZRcdhGP2SlGzNm6eeV1RW0bWcnIrrVlanbFny+daOy5ZVVic5sUr3\nmuTjkqQr3evKJoFbSxa3dr2kLUmSpCwxIa1FYQjvvgszZ8Kjj0Y9oQMGREnoj38cfUdWDBIJKCyM\nto0bo62i43Tn6bZNm1L36cpKksbk43TnZbeioijm3NwtW/Pm6c8r25ccN2uW+rrkayXHJXWSrydv\nJUleZecV1UkuL5swpitL7uGSJElSo2JCmmWJRDQ77qOPRonopk3RWqGDBkG/fvaEUlwMGzZAQUG0\nlT2uaEu+XlhYfl9RWdlt48YohhYtoGXL9PuS49zc1LLkayXHubnlj8uWJZdXdpxuS04iTcgkSZLU\nyJiQZkFBAeTnR2uEPvYYdOgQJaAnnwz7799A8ogwjJK19eu3bOvWbTn+7rvULV3Zd99FH0ZF+4KC\n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\n8W6/5zblyvLz88nPz89CEGQ8hvQg4PowDI/bfD4CSCRPbFTX65BKileULIckwgSJMEHEcucYAAAQ\nA0lEQVQYhhSHxYThlrJ0W3Kd4rA4fZ1EcUr9yspLyorD4pTjkmuVHVdWVuV9mrKiRFGlZSXHRYmi\ncudbKwsIaJ7TvMZbbrPc8mU5uZWfN8stLSt5fW5Obspxcr2K6iRfT963aNYipaxZ0MzHICVJqofi\nnNSoOdGkRkcBXwJzSTOpkQmpJNWekkQ+OUFNt20q3pT2+qbiTVuOE5soThSzKbGp0jrJZcnnaY8T\nm1Lqlj1Ot99YvLFcWSJMRElqmqS1pLwq52WPk+tUtLVs1jJ9efOWFdZrntPcBFqS1CTENqlRGIZF\nQRBcCvyTaNmXKcnJqCSp9gVBQLOgGc1ymsUdSq0qSZSTE9WNxRvLHZcks8nnyQluyXlyvY3FG1lb\nuLb0emFRIRsTG1PqlpQnt1FYVFi+TnFUVpwoTklaS5LV5POWzVumlJceJ12rbN+qeauUslbNW1V6\n3Dwn05E6kiRlV8brkG71BvaQSpKaoESYSElaSxLVwqLCcseVlVW031C0oVx5clnZ4w1FG8gJclIS\n2ZJEtVXzVuW2kuvpttbNW6cvz21d7npyWWP/o4kkNVWxPbJbpRuYkEqSFLswDClKFG1JZpMS1XRl\nZbfC4kIKNhWklhdvKC0rKCqgsKiQgqLN50l1C4oKKNhUQLOcZqXJaXKiWjaRbZ3bOirffK2ifV5u\nXkpZXm5eynGr5q18bFqS6oAJqSRJqtfCMGRTYlNpslo2cS1JWpPLk8vK7YsK+G7Tdynl3236LuV4\nY/HG0gS3JHktSVrzcvNSytJtJdfatGiT9nqb3DYmvpKECakkSVI5iTBRmrCWJK8lSet3m75LKSs9\nL0o9X79pfbk6Za8XFhXSOrd1aYJaksCWnJeWNY/2bXLbpNRJLku3N+GVVN+ZkEqSJMUkESa2JKgb\n15cmqmXPyx6X1kk6T7fflNhUmry2bdE2JWFt26JtdJx0raSsbYu2KWXpynOCnLg/PkmNgAmpJElS\nI1WUKCpNbkuS1HUb15U7XrdxXXS8uV7peZlrazeuLU2OW+e2Lk1Q02650b5dy3alZe1aJB1vLm/X\noh3tWrYjLzfPJFdqgkxIJUmSVC0ljzSXJKvJ29qNa1PPC9eWu1a6L9xyvqFoA3m5eaVJa7uW7UqT\n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\nDOlrJP06Io5GxLKkOyS9vUnXAhoqIp6JiJ9n289JekzSGZIOSbotO+w2SX+aZoTA5tg+U9IfS/pn\nSeUHzFHHaCm2ByW9ISJukaSIKEbEtKhltJ5OSX22OyX1Sfq9qGO0gIj4iaTJmu71avftkg5HxHJE\nHJX0a5Wy4bqaFUjPkPS7XPuprA9oKbbPlnRA0v2SXhwRz2a7npX04kTDAjbrsyo9DX0110cdo9Wc\nI2nM9q22H7D9T7b7RS2jhUTE05I+I+m3KgXRqYg4IuoYrWu92n2pStmv7KQ5sFmBlCcloeXZ3iPp\nW5KujYjZ/L4oPQ2MOseOZfutko5FxIM6MTtahTpGi+iU9GpJX46IV0uaU81tjdQydjrbwyrNKJ2t\n0gf2Pbb/PH8MdYxWtYna3bCumxVIn5a0P9fer+qkDOxotrtUCqO3R8R3su5nbZ+e7X+JpGOpxgds\nwh9KOmT7SUmHJb3F9u2ijtF6npL0VET8Z9b+pkoB9RlqGS3kMklPRsR4RBQlfVvSa0Udo3Wt93mi\nNgeemfWtq1mB9L8knWf7bNvdKn2x9c4mXQtoKNuW9FVJj0bEzbldd0q6Ktu+StJ3al8L7BQRcUNE\n7I+Ic1R6cMYPI+IvRB2jxUTEM5J+Z/v8rOsySb+U9D1Ry2gd/yvpYtu92eeMy1R64Bx1jFa13ueJ\nOyW923a37XMknSfppxudqGm/Q2r7jyTdrNJTxL4aEZ9syoWABrP9ekk/lvSwTtxicL1K/zF9XdLL\nJB2V9K6ImEoxRuD5sH2JpI9ExCHbe0Udo8XYvlClh3N1S/ofSe9T6fMFtYyWYfvvVZqkKUp6QNIH\nJJ0m6hg7nO3Dki6RtE+l74veJOm7Wqd2bd8g6f0q1fq1EfGDDc/frEAKAAAAAMBGmnXLLgAAAAAA\nGyKQAgAAAACSIJACAAAAAJIgkAIAAAAAkiCQAgAAAACSIJACAAAAAJIgkAIATim2V2w/mC0P2D7L\n9r9n+862/Ui2fWH2m9rbvd6Ntn9h+6Hsmn+Q9f+N7d7tnh8AgFbWmXoAAAC8wOYj4kBN3+vqHHdA\n0kFJ/7rZE9vujIhirv1aSX8i6UBELNveK6kn232tpNslLTyfwQMA0E6YIQUAnPJsP1fT7pL0CUlX\nZrOa77Tdb/sW2/dnM6uHsmOvtn2n7bslHak59emSjkfEsiRFxERE/J/tayS9VNI92etk+3Lb99n+\nme2v2+7P+o/a/pTth7Nrn9vUPwYAAC8gAikA4FTTm7tl91tZX+QPyALkxyXdEREHIuIbkm6UdHdE\nXCTpLZI+bbsve8kBSe+IiDfXXOsuSftt/7ftL9l+Y3b+z0v6vaQ3RcSltvdl5780Ig5K+pmkv82N\nbSoiXiXpi5JubthfAgCAxLhlFwBwqlmoc8tuPc6Wssslvc32R7N2j6SXqRQYj0TEVO0JImLO9kFJ\nb5D0Zkn/Yvu6iLit5tCLJV0g6T7bktQt6b7c/sPZ+g5Jn93E2AEAaAkEUgAANu/PIuKJfIftiyTN\nrfeCiFiV9CNJP8oemHSVpNpAKpVC7Xs3MYY4+SEAALQGbtkFAKC+GUmn5do/kHRNuWG7PMuan0Wt\nYvt82+flug5IOpptz0oayLbvl/S68vdDs++r5l93ZW6dnzkFAKClMUMKADjV1JthjDrb90i6zvaD\nkv5R0j9Iutn2wyr9g+5vJB3Kjl9v1nKPpC/YHpJUlPSEpL/K9n1F0r/Zfjr7HunVkg7bLj+F98bs\neEkatv2QpEVJ73k+bxYAgJ3MEdz5AwDATmX7SUkHI2Ii9VgAAGg0btkFAGBn41+OAQBtixlSAAAA\nAEASzJACAAAAAJIgkAIAAAAAkiCQAgAAAACSIJACAAAAAJIgkAIAAAAAkiCQAgAAAACS+H+kahhg\nDgmQ8gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1023e7610>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,9))\n",
    "plt.plot(range(len(measurements[0])),Kx, label='Kalman Gain for $x$')\n",
    "plt.plot(range(len(measurements[0])),Ky, label='Kalman Gain for $y$')\n",
    "plt.plot(range(len(measurements[0])),Kdx, label='Kalman Gain for $\\dot x$')\n",
    "plt.plot(range(len(measurements[0])),Kdy, label='Kalman Gain for $\\dot y$')\n",
    "plt.plot(range(len(measurements[0])),Kddx, label='Kalman Gain for $\\ddot x$')\n",
    "plt.plot(range(len(measurements[0])),Kddy, label='Kalman Gain for $\\ddot y$')\n",
    "\n",
    "plt.xlabel('Filter Step')\n",
    "plt.ylabel('')\n",
    "plt.title('Kalman Gain (the lower, the more the measurement fullfill the prediction)')\n",
    "plt.legend(loc='best',prop={'size':18})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Covariance Matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x107f20910>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(6, 6))\n",
    "im = plt.imshow(P, interpolation=\"none\", cmap=plt.get_cmap('binary'))\n",
    "plt.title('Covariance Matrix $P$ (after %i Filter Steps)' % (m))\n",
    "ylocs, ylabels = plt.yticks()\n",
    "# set the locations of the yticks\n",
    "plt.yticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.yticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "xlocs, xlabels = plt.xticks()\n",
    "# set the locations of the yticks\n",
    "plt.xticks(np.arange(7))\n",
    "# set the locations and labels of the yticks\n",
    "plt.xticks(np.arange(6),('$x$', '$y$', '$\\dot x$', '$\\dot y$', '$\\ddot x$', '$\\ddot y$'), fontsize=22)\n",
    "\n",
    "plt.xlim([-0.5,5.5])\n",
    "plt.ylim([5.5, -0.5])\n",
    "\n",
    "from mpl_toolkits.axes_grid1 import make_axes_locatable\n",
    "divider = make_axes_locatable(plt.gca())\n",
    "cax = divider.append_axes(\"right\", \"5%\", pad=\"3%\")\n",
    "plt.colorbar(im, cax=cax)\n",
    "\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig('Kalman-Filter-CA-CovarianceMatrix.png', dpi=72, transparent=True, bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## State Vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n8Abg2iLbkyQVY9IrSdW1YcbZDY/vUBsv+hngUWoX+i8HTq+X/wxwZn0s7McK7iNHPE+AzLyb2sRA\n/06te+/vA/+noewm+6p3LX0HtfGuv6jH9yVqXT1H8zXgiHqS0OqYNw148/fV7Dif38xtjbxX8Mhz\n3uz9aRXXpi9krgOOAt5e3975wHsz876C22t2X+PVwP7ArRHxNLX3+U7g46MdVxfqA5n5K+AWYGvg\n8hGvjbm9+mtHAa+h1iK8jNpEWy+IDZjP5p/TRm+txxHASyLindQmZdvgKOCGDWOfJUntEb/rnVPC\nziO+Su2WAo9k5uvHKPMFav+5rAHen5l3dDFESVKPioj/Tu3/j8+XHYvUDhHxI2ozco96/2VJ0viU\nnfT+IbVbFnxttKQ3Io4A5mfmERGxP/D5zDyg23FKkiRJkvpTqd2bM/Nmms9QeDT1cTmZeSuwQ33y\nB0mSJEmSWur1Mb0z2HTa/+XUbi0gSZIkSVJLvZ70wgtnpiyvP7YkSZIkqa/0+n16VwCzGpZn1tdt\nIiJMhCVJkiSpwjJzXPeT7/Wk93Jqtwe4JCIOAJ7MzJWjFSxzQi6pHYaGhhgaGio7DGnCrMuqCuuy\nqsB6rKqIGFe+C5Sc9EbExcDBwMsjYhlwFvBigMxckJlXRsQREbEEeAY4obxoJUmSJEn9ptSkNzPn\nFSgzvxuxSJIkSZKqpx8mspImhcHBwbJDkNrCuqyqsC6rCqzHEkQVxsJGRFbhOCRJkiRJLxQR457I\nypZeSZIkSVJlmfRKkiRJkirLpFeSJEmSVFkmvZIkSZKkyjLplSRJkiRVVqn36ZUkSZKkXhAxromB\nNUHduAuPSa8kSZIk0Z0ETL/TrR8a7N4sSZIkSaosk15JkiRJUmWZ9EqSJEmSKsukV5IkSZJUWSa9\nkiRJkqTKMumVJEmSJFWWSa8kSZIkqbJMeiVJkiRJlWXSK0mSJElq6lOf+hTbb789119/PQDXXXcd\n22+/PZ/+9KdLjqw1k15JkiRJUlMrVqzg6aef5vHHHwfgscceY/Xq1axYsaLkyFqLzCw7hgmLiKzC\ncUiSJEkqR0RgTjG2zGTlypXstNNOG9c9/PDDTJ8+nYgY1zY355zXy45rRya9kiRJkiY9k97u61bS\nO3U8fyRJkiRJmlwef/xxzj77bDKT+++/nxNPPJHDDz+cU045hS233JInn3ySc889l5133rnsUDdh\n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\nSaqufuzeLEmSJElSx5n0SpIkSZIqy6RXkiRJklRZJr2SJEmSpMoy6ZUkSZIkVZZJryRJkiSpskx6\nJUmSJEmVZdIrSZIkSaosk15JkiRJUmWZ9EqSJEmSKsukV5IkSZJUWSa9kiRJkqTKMumVJEmSJFWW\nSa8kSZIkqbJMeiVJkiRJlWXSK0mSJEmqLJNeSZIkSVJlmfRKkiRJkirLpFeSJEmSVFkmvZIkSZKk\nyjLplSRJkiRVlkmvJEmSJKmyTHolSZIkSZVl0itJkiRJqiyTXkmSJElSZZn0SpIkSZIqy6RXkiRJ\nklRZJr2SJEmSpMoqJemNiD+LiJ9HxPMR8YYm5eZGxOKIuD8iTu1mjFK3DQ8Plx2C1BbWZVWFdVlV\nYD2WymvpvQt4J3DTWAUiYgpwPjAX2AuYFxF7dic8qfv8T0lVYV1WVViXVQXWYwmmlrHTzFwMEBHN\nis0BlmTm0nrZS4BjgHs6HZ8kSZIkqRp6eUzvDGBZw/Ly+jpJkiRJkgqJzOzMhiOuBXYa5aUzMvOK\nepkbgI9n5u2j/P1/AeZm5on15fcA+2fmh0cp25mDkCRJkiT1hMxs2lV4LB3r3pyZfzzBTawAZjUs\nz6LW2jvavsZ18JIkSZKkauuF7s1jJayLgN0jYnZEbAG8C7i8e2FJkiRJkvpdWbcsemdELAMOAL4X\nEVfV1+8SEd8DyMzngPnANcDdwKWZ6SRWkiRJkqTCOjamV5IkSZKksvVC9+Zxi4i5EbE4Iu6PiFPL\njkcqKiJmRcQNEfHziPhZRJxUXz8QEddGxH0R8f2I2KHsWKVWImJKRNwRERsmKbQeq+9ExA4RsTAi\n7omIuyNif+uy+k1EfLR+XXFXRHwrIra0HqsfRMRXI2JlRNzVsG7MuhsRp9dzwMUR8dZW2+/bpDci\npgDnA3OBvYB5EbFnuVFJha0DPpqZv0etm//f1OvvacC1mbkH8IP6stTrTqY2DGVD1yHrsfrR54Er\nM3NP4A+AxViX1UciYgbwYeCNmfl6YArwbqzH6g8XUsvrGo1adyNiL2rzPe1V/5svRkTTvLZvk15g\nDrAkM5dm5jrgEuCYkmOSCsnMhzPzJ/XnTwP3ULsP9dHARfViFwHHlhOhVExEzASOAC7gdxMTWo/V\nVyJie+APM/OrUJtXJDN/jXVZ/WcqsHVETAW2Bh7Eeqw+kJk3A6tGrB6r7h4DXJyZ6zJzKbCEWm44\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10873a910>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,9))\n",
    "\n",
    "plt.subplot(311)\n",
    "plt.step(range(len(measurements[0])),ddxt, label='$\\ddot x$')\n",
    "plt.step(range(len(measurements[0])),ddyt, label='$\\ddot y$')\n",
    "\n",
    "plt.title('Estimate (Elements from State Vector $x$)')\n",
    "plt.legend(loc='best',prop={'size':22})\n",
    "plt.ylabel('Acceleration')\n",
    "plt.ylim([-1,1])\n",
    "\n",
    "plt.subplot(312)\n",
    "plt.step(range(len(measurements[0])),dxt, label='$\\dot x$')\n",
    "plt.step(range(len(measurements[0])),dyt, label='$\\dot y$')\n",
    "\n",
    "plt.ylabel('')\n",
    "plt.legend(loc='best',prop={'size':22})\n",
    "plt.ylabel('Velocity')\n",
    "           \n",
    "plt.subplot(313)\n",
    "plt.step(range(len(measurements[0])),xt, label='$x$')\n",
    "plt.step(range(len(measurements[0])),yt, label='$y$')\n",
    "\n",
    "plt.xlabel('Filter Step')\n",
    "plt.ylabel('')\n",
    "plt.legend(loc='best',prop={'size':22})\n",
    "plt.ylabel('Position')\n",
    "plt.savefig('Kalman-Filter-CA-StateEstimated.png', dpi=72, transparent=True, bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Position x/y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n/uVbufS2S7Pw3etYdfnBpP8V/fObyb/JG97whjZ9n1uiJbcCEm4BAABawdrBbfbs2fnO976TiWdN\nzNIsTaqkT88+OfmTJ+eLX/jiy/anXbhwYRYsWJAhQ4akZ896su3SpUtz4idPzMU/uzgr9l2RJUOX\nJIuTgX8emB5zeuRXP/9VDjnkkDZ/n1tCuBVuAQCADm59wW3p0qV54oknUkrJ8OHD071793W8ev0e\neeSRTDxrYu66767069sv7z3qvXn3u9+dXr16tVTpbUa4FW4BAIAObn3BjdVaMtxaUAoAAIDGE24B\nAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAADqIGTNm5GunnJJRO++cnbbeOmNGjcqZEydm/vz5\n7V3aqzZixIjccMMNbX5f4RYAAKANVFWVKVOm5IRjjsm+u+ySN4wYkU8cd1ymTZuWJPnlpZdm/732\nygv//u/50YwZuXXOnJx2zz25+otfzBv22CMPPvjgS23dfffdueyyy3Lttddm3rx5m1XPT3/60xx4\n4IEZMGBAhg4dmre85S0544wztvh9llJSyibt4tMierT5HQEAALqY5cuX52+PPz43XHpp/u7FF/O5\nFSuyIslVjz+ed/785xk3YUJ+fcUVuXbRorxxjdftkuSIBQtyxsKFOeLQQ/MfZ5+d//ulL2XGww9n\nvx49Mi/JH5cuzYc//OH839NPz8CBA19VPaeffnq++93v5oc//GGOOOKI9O/fP9OmTcv3vve9fPzj\nH0+vXr1a4bvQukoTNxUupVRNrBsAAOg6SilZlVtO+exnc/vZZ+dXCxdmwFrXzUny+m7d8sUVK/L5\nDbT3xl698miSM5csyVFZ3VP5eJJ/7N07d++2W26cMiUDBqx9h5ebO3duhg8fngsvvDDvfve713vN\nySefnGuuuSb9+vXLiSeemK985SsppeShhx7KiSeemD/+8Y8ppeSII47ID37wgwwePDhJ8trXvjbn\nnHNOxo8fv5Hv0Mu/R+s4vkndv4YlAwAAtKLZs2fnrLPOyk/XEWyTpGeSuStW5KMbaGNukgeXLMl1\nS5bkPXn5ENwdk5y7eHH2fOih/NPXvrbRen73u99l8eLFOeqoo9Z7zcknn5x58+blkUceyU033ZQL\nLrgg55133kvnv/rVr+bJJ5/MvffemxkzZuS0007b6H1bm3ALAADQii655JK8o1u3bL+e888l2SrJ\nkA20cUGSI5Lsv57zJck3Fi/Oeeeck0WLFm2wnmeffTbbbrttunVbHQcPOuigbLXVVunXr19uvvnm\nXHzxxfn2t7+d/v37Z5dddskXvvCFXHjhhUmS3XbbLYcffnh69uyZbbfdNp///Odz0003bfCebUG4\nBQAAaEWPTZ+e1y1cuN7zg5I8n2TxBtq4PskxG7nPbkl26dbtpQWq1mebbbbJs88+mxUrVrx07Le/\n/W3mzJmTbbbZJrNmzcrSpUuzyy67vHR+5513zsyZM5MkTz31VN7//vdnxx13zODBg3Pcccflueee\n20h1rU+4BQAAaEWDhgzJsz3Wv5bvVkkOTPKLDbSxJEnfV3GvvqVkyZIlG7xmzJgx6d27d375y1+u\n8/y2226bnj17Zvr06S8de+yxx7LjjjsmSb7yla+ke/fuueuuuzJ37txceOGFLwvK7UW4BQAAaEVH\nH310Lu7ZMxuKnH+b5O+TPLWe8wOT3LKR+yxIcs/ixdljjz02eN2QIUNy6qmn5lOf+lR+/vOfZ968\neVmxYkWmTZuWBQsWpHv37jnmmGPy1a9+NfPnz8+jjz6af/3Xf82HP/zhJMn8+fPTv3//DBo0KDNn\nzsx3v/vdjVTWNoRbAACAVrTXXnvlDQcckG+tp/e2SnJzr17ZYc89M6Zfv5yfZNWs2VlJvtm9e67r\n0yfn9e6dBRu4z/lJ3nrIIXnNa16z0Zr+4R/+Id///vfzne98J8OGDcuwYcNy0kkn5Tvf+U4OOuig\n/Od//mf69++fXXfdNYceemg+9KEP5aMfrZe8OvXUU3PnnXdm8ODBede73pX3vOc97bKv7dpsBQQA\nANAK1tzmZtasWRk7enQOevrp/MPixdl75TXTkny7T5/8eeedc+OUKZkyZUr+/VvfyqTbbkv/Hj2y\npKrygWOOyee/8pWc/q1v5bFLL83/LFyYtXezvTbJcf3757rf/CZveMMb2vBdbpmW3ApIuAUAAGgF\nawe32bNn51+/852cPXFieixdmhVJuvXpk0+cfHI+/8Uvvmx/2oULF2bBggUZMmRIevbsmSRZunRp\nPnPiifmfiy/OR1asyJuWLMm8JD8dODD39+iRi3/1qxxyyCFt/C63jHAr3AIAAB3c+oLb0qVL88QT\nT6SUkuHDh6d79+6b1O4jjzyScyZOzIN33ZU+/frlHe99b9797nenV69eLVV6mxFuhVsAAKCDW19w\nY7WWDLcWlAIAAKDxhFsAAAAaT7gFAACg8YRbAAAAGm/duwgDAACwxUrZpDWR2ALCLQAAQCuwUnLb\nMiwZAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAA\ngMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24B\nAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzh\nFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDG\nE24BAABoPOEWAACAxhNuAQAAaLx2DbellHNLKU+VUv60xrHTSimPl1L+sPJxZHvWCAAAQMfX3j23\n5yVZO7xWSb5fVdX+Kx/XtENdAAAANEi7htuqqm5JMmcdp0pb1wIAAEBztXfP7fqcXEr531LKOaWU\nIe1dDAAAAB1bRwy3ZyR5bZL9kjyZ5PT2LQcAAICOrkd7F7C2qqqeXvW8lHJ2ksvXdd1pp5320vOx\nY8dm7NixrV0aAAAArWDy5MmZPHnyFrVRqqpqmWo2t4BSRiS5vKqqfVZ+vUNVVU+ufP75JG+uquqD\na72mau+6AQAAaB2llFRVtUlrMbVrz20p5aIkhyXZtpQyI8mpScaWUvZLvWryI0n+th1LBAAAoAHa\nved2c+i5BQAA6Lw2p+e2Iy4oBQAAAJtEuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGE\nWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAa\nT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAA\noPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsA\nAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4\nBQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDx\nhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAA\nGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUA\nAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRb\nAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpP\nuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg\n8YRbAAAAGk+4BQAAoPGEWwAAABpPuAUAAKDxhFsAAAAaT7gFAACg8YRbAAAAGk+4BQAAoPHaNdyW\nUs4tpTxVSvnTGse2LqVcV0p5oJTy61LKkPasEQAAgI6vvXtuz0ty5FrHvpTkuqqq9kxyw8qvAQAA\nYL3aNdxWVXVLkjlrHf6rJD9a+fxHSY5u06IAAABonPbuuV2XoVVVPbXy+VNJhrZnMQAAAHR8HTHc\nvqSqqipJ1d51AAAA0LH1aO8C1uGpUsqwqqpmlVJ2SPL0ui467bTTXno+duzYjB07tm2qAwAAoEVN\nnjw5kydP3qI2St052n5KKSOSXF5V1T4rv/5OkueqqvqXUsqXkgypqupLa72mau+6AQAAaB2llFRV\nVTbpNe0ZEkspFyU5LMm2qefXfj3JZUkuSbJzkulJjqmq6vm1XifcAgAAdFKNC7ebS7gFAADovDYn\n3HboBaUAAADg1RBuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzh\nFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDG\nE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAA\naDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYA\nAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNu\nAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg8\n4RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACA\nxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEA\nAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEW\nAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYT\nbgEAAGg84RYAAIDGE24BAABoPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABo\nPOEWAACAxhNuAQAAaDzhFgAAgMYTbgEAAGg84RYAAIDGE24BAABoPOEWAACAxuvR3gWsTyllepIX\nkixPsrSqqtHtWxEAAAAdVYcNt0mqJGOrqprd3oUAAADQsXX0YcmlvQsAAACg4ytVVbV3DetUSnk4\nydzUw5LPrKrq/61xruqodQMAQFurqio33nhjpk6dmiQZPXp0xo8fn1L0FdFMpZRUVbVJf4E78rDk\ng6uqerKUsl2S60op91VVdUt7FwUAAB3JpEmTctJxx6XP3Lk5YtGiJMnn+/bNksGDc8aFF2bcuHHt\nXCG0jQ4bbquqenLln8+UUi5NMjrJS+H2tNNOe+nasWPHZuzYsW1cIQAAtK9Jkybl2AkT8qOFC3Nk\nVs/p+5f583PN/Pk5dsKEXHzFFQIuHd7kyZMzefLkLWqjQw5LLqX0S9K9qqp5pZT+SX6d5BtVVf16\n5XnDkgEA6NKqqspeO+2Uf5s5M+9YzzVXJfn7HXfMvY89ZogyjbI5w5I76oJSQ5PcUkqZlmRKkitW\nBVsAACC58cYb02fu3By5gWvekaTX889n0qRJbVUWtJsOOSy5qqpHkuzX3nUAAEBHNXXq1ByxaNHL\nthf5c3bP/AzI/pmWpB6mfOSiRZk6dWrGjx/fLnVCW+moPbcAAMAmWpYeuTd7t3cZ0C6EWwAAaKDR\no0fn2r59s+ZKNDvkyTyZHV76ukpyTd++GT16dJvXB21NuAUAgAYaP358Fg8enGvWODY4c7MsPTI/\n/ZMkVydZMmSI1ZLpEoRbAABooFJKzrjwwhzfr1+uSt1LW1L33j6RHXJVkhP69csZF1xgpWS6hA65\nFdDG2Apywj0ZAAAgAElEQVQIAABqkyZNyknHHZfec+fmyEWLMr16W37fO+m5zd0544IL9NrSSJuz\nFZBwCwAADVdVVW688cbcfvvtmTVr2wwc+Jb80z+N0mNLYwm3AADQxT33XHLhhcnnPtfelcDm25xw\na84tAAB0IltvnSxaVD+gKxFuAQCgEyklGTYsefLJ9q4E2pZwCwAAncwOOwi3dD3CLQAAdDLCLV2R\ncAsAAJ2McEtXJNwCAEAns+22yQsvJIsXt3cl0HaEWwAA6GS6dUuGDk1mzWrvSqDtCLcAANAJGZpM\nVyPcAgBAJyTc0tUItwAA0AkJt3Q1wi0AAHRC222XzJmTLF3a3pVA2xBuAQCgE+rRo141+amn2rsS\naBvCLQAAdFKGJtOVCLcAANBJCbd0JcItAAB0UsItXYlwCwAAndTQocmzzybLl7d3JdD6hFsAAOik\nevZMttoqefrp9q4EWp9wCwAAnZihyXQVwi0AAHRiwi1dhXALAACdmHBLVyHcAgBAJzZsWPLUU8mK\nFe1dCbQu4RYAADqx3r2TQYPqVZOhMxNuAQCgkzM0ma5AuAUAgE5OuKUrEG4BAKCTE27pCoRbAADo\n5IYNS2bNSqqqvSuB1iPcAgBAJ9evX9K3bzJ7dntXAq1HuAUAgC7A0GQ6O+EWAAC6AOGWzk64BQCA\nLkC4pbMTbgEAoAtYFW4tKkVnJdwCAEAXMGBA0qNHMndue1cCrUO4BQCALsLQZDoz4RYAALoI4ZbO\nTLgFAIAuQrilMxNuAQCgixBu6cyEWwAA6CIGDUpWrEjmzWvvSqDlCbcAANBFlFL33s6a1d6VQMsT\nbgEAoAsxNJnOSrgFAIAuZNgw4ZbOSbgFAIAuRM8tnZVwCwAAXcjWWyeLFiULF7Z3JdCyhFsAAOhC\nSqmHJltUis5GuAUAgC7G0GQ6I+EWAAC6GOGWzki4BQCALka4pTMSbgEAoIvZdtvkhReSxYvbuxJo\nOcItAAB0Md26JUOHWlSKzkW4BQCALminnZJ7723vKqDlCLcAANAFHXxw8qc/JU891d6VQMsQbgEA\noAsaMCAZPz65/PKkqtq7Gthywi0AAHRRBxyQlJL8/vftXQlsOeEWAAC6qFKSCROSG29M5s9v72pg\nywi3AADQhQ0dmuy/f/LrX7d3JbBlhFsAAOjiDjsseeyx5OGH27sS2HzCLQAAdHG9eiXveEdy5ZXJ\nsmXtXQ1sHuEWAADIyJHJ9tsnt97a3pXA5hFuAQCAJHXv7dSpybPPtnclsOmEWwAAaKAnn0yWLm3Z\nNgcNSg49tB6ebO9bmka4BQCABrrqquQ//zOZNi1ZsaLl2j3wwGTRouRPf2q5NqEtCLcAANBABxyQ\ndOuW3HlnctZZyUMPtUy73bol73pXvTXQokUt0ya0BeEWAAAa6PWvT5YsSY46qt7K56qrkgsvTGbN\n2vK2hw9P9t47uf76LW8L2kqpGjiYvpRSNbFuAABoSddfX2/dc+SRyfLldS/uTTclu++ejBuXDB68\n+W2/+GLygx8kxxyT7LRTy9UMr0YpJVVVlU15jZ5bAABoqDe9Kfnf/617cLt3T9785uTkk+uFoSZO\nrMPviy9uXtt9+iRHHJFcfnkdnKGjE24BAKChhgxJRoyoA+4qvXsn48cnn/xksmBBvejUlCmbF1BH\njUoGDkxuu63FSoZWI9wCAECDjR5d70279qy9QYPq+bgf+Ujy4IP1EON77tm0LX5KSd75zuQ3v0me\nf75l64aWJtwCAECDjRhRh9BHHln3+aFDkw99KJkwIbnlluScc5LHHnv17W+9dfKWt9QLVln2ho5M\nuAUAgAYrZXXv7YbsumvyiU/U1/7858nFFyfPPvvq7nHwwcmcOcl99215vdBahFsAAGi4ffete2M3\nNnS4lPrak09OdtwxOffc5Mor67m5G9K9ez08+eqrk8WLW65uaEm2AgIAgE7g2muTbt2St7/91b9m\n4cLk5puTP/6xHno8ZkzSs+f6r//lL+tVlI88csvrhQ2xFRAAAHRRo0cnf/hDsnTpq39Nv351UP2b\nv0mefrpeWfnOO5MVK9Z9/V/8RfKnPyVPPtkyNUNL0nMLAACdxE9+kuy1V3LAAZv3+scfT667Llm0\nqO4B3n33eijzmv7wh+T22+tA3E1XGa1Ezy0AAHRho0fXe9pubj/QjjsmJ5yQHH54Pcz5ggte2Uu7\n33710OU77tjicqFFCbcAANBJ7LZbsmzZpm31s7ZSkpEjk099Khk1Kvnv/05+8YvVi1WVUm8rNHly\nMm9ei5QNLcKwZAAA6ESmTEkefTQ55piWaW/x4uS3v623GjrggOSQQ5K+fZMbbkhmz07e976WuQ+s\nybBkAADo4vbbL3nkkWTu3JZpr3fvZNy4uif3xReT//qv5He/q/e+feKJ5MEHW+Y+sKX03AIAQCdz\n1VV1KD388JZv++mnk+uvT555Jtlll7qX+FOf2vAWQrCp9NwCAAAZPbre0mfZspZve/vtkw9+MPmr\nv6qD7pw59V650N6EWwAA6GS23TYZNiy5667Wu8drX5uceGLynvfUWwdBezMsGQAAOqEHHqhXND7x\nxFfuVQsdnWHJAABAkmT33ese1ccfb+9KoG0ItwAA0Al161bPvZ06tb0rgbYh3AIAQCe1//7Jn/+c\nzJ/f3pVA6xNuAQCgk+rTJ3n965M77mjvSqD1CbcAANCJjR6d/P73yfLl7V0JtC7hFgAAOrHtt6+3\nBrrnnvauBFqXcAsAAJ2chaXoCoRbAADo5EaOTF54IXniifauBFqPcAsAAJ1ct27Jm9/ccr23y5cn\nzz3XMm1BS+nR3gUAAACt74ADkv/4j2TBgqR//017bVXVYfahh+rH9OlJ9+7J//k/SSmtUi5sMuEW\nAABawPPPJ7ffnuywQzJ8eDJkyOYHv1//OjnkkKRfv5arr1+/ZO+9kzvvTA49dOPXL1yYPPzw6kBb\nSrLbbsm++yazZydveYtgS8ci3AIAQAtYFQRnz06uvbYeujt8eP3Yeedk111ffVt//nOy3XbJ/vu3\nbI0HHpj85CfJwQfXQ5XXtGxZMmPG6jA7e3YyYkQdaA8+ONlmmzrM3nlnvX/uG9/YsrXBlhJuAQCg\nBcyZU/eMHnZY/fULLySPPppcdVXdo/uZzyS9e7+6tnr1Sh54oOXD7bBhdY/yfffVtT7zzOowO2NG\nHah32y058shkxx3rocdrWrAgueGG5Ljj9NrS8Qi3AADQAubMSfbcc/XXc+cmkyfXYfEv//LVB9uk\nDrcPPVT3pvbYzJ/Yly2rhxYvWFD/uebjkkuSgQPrtnfbrZ6P+573JH37brjN665L9tmnDsnQ0Qi3\nANBBVVWVG2+8MVNXLm86evTojB8/PkV3CXRIc+YkW22VLF2aTJqU/PGPdah93es2va1evZIlS+qe\n391227TXPvhgHV6XL6/n2a569O+/et7tLbfUte2996tv99FH66HXf/d3m1YPtBXhFgA6oEmTJuW4\njx2XucvnZtEui5Ikfc/om8E9BufCcy7MuHHj2rlCYG1z5tS9pGeemQwdmnzyk5u+KvEqPXsm229f\nD03e1HC7ap7s4sXJsceuu8e4R496Xu+rDbfLlydXXlkPV96UHmhoSx1yn9tSypGllPtKKX8upZzS\n3vUAQFuaNGlSJrx7QmYePDPzPzY/y9+2PMvftjzzPzY/Mw+amQnvnpBJkya1d5nAGlYN/b388mTc\nuOR979v8YJvUPbevfW1y//31NjybokeP+v5bbZX86Ed1bWt74xuTe+5JFi16dW3+7nfJoEGb1tML\nba3DhdtSSvck/5XkyCSvS/KBUop/RgB0CVVV5biPHZeFExYmeyRZcwRySbJHsvCdC/ORj38k1ab+\nxAu0ipkzk+9+t37+qU8lo0ZteZu9etULPyX1ok+bqlu3ZMKEZPfdk3PPrbcpWtOAAfX84D/84dW1\nN2VK8ra3WUSKjm294baUcnUp5bVtWcxKo5M8WFXV9Kqqlib5aZKj2qEOAGhzN954Y+Yun5vsvoGL\n9kieX/a83ltoZ8uWJddfn1x0UfL619dhcUt6a9e0as7tnnvWQ5M3RynJ+PHJm9+cnHde8vTTLz9/\n4IHJ1KnJihUbb2u77eoFsqAj21DP7blJri2lfLWU0rOtCkoyPMmMNb5+fOUxAOj0pk6dWs+xXbN3\nZFnP5MWBq78uyaJdFr200BTQ9mbOrOfWPvNMsssuyV131cOAW0pLhNtV3vKW5PDD6yHKM9b4KXv4\n8DqM//nPG29jxIhk+vQtqwNa23oXlKqq6mellKuTfD3JHaWUC5NUq09X32+lml7VGKvTTjvtpedj\nx47N2LFjW6kcAGhn08clM8YkQx5N9v1x0n1Ze1cEXdayZclNNyV33lnvZ3vvvXU43Hnnlg23PXvW\n++SOGJH87Gf1fN5+/Ta/vX33rbf5+elPk6OPTvbYoz5+6KHJL36R7LprPZx6zz3rYL22ESOSq6/e\n/PvDxkyePDmTJ0/eojY2tlry0iTzk/RJMjDJqxi0sMVmJtlpja93St17+zJrhlsA6CxGjx6dvmf0\nzfxq/ure291/nbz2huR/j0+eH5Fs/WD6Pto3o0ePbs9Soct54onkl79Mtt46ee9768WjZs+uQ+4T\nT7ROz22PHvXCUg8+WAfULbHHHkn37sl//3fy139dt7fXXsnnPpfcd18ybVr9nnbbrR5mvccedchO\nkte8JnnuueTFF5M+fbb8/cHa1u6w/MY3vrHJbaw33JZSjkzy/SSXJ9m/qqqFm17iZrkjyR6llBFJ\n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\n6n6G6eDBByMWL86gu2RJVrWf9KQ8PfaxEZ//fMQznpHTvQHhFgCgq6xblyF3aODdYYdNA++cORE7\n77x9zzOwt+/m4fXuu3Pt6+67Z3idNWswyO61V8Qee+R4Hnwwmz9de23E858fcfTRW1YPa404//yc\nbvvqV+d6WsZnw4Zc471oUVZ2B17/009XtYUBwi0AQBerNcPmQNC944487b77poF39uyIHXfc8vvX\nrdty+vDA+Uc/etPgOnDac8+R18bWmpXaH/0op8oef3xWejd/7IHzGzfm9x17bMRLXzp5/06PJH19\nOWV5551zWjuQhFsAgMYMrO0dGnhXrsxOy3PmZJVvIGTWOnyAnTVr7PvHLl8ecd55uaXNrFm5nvie\nezJUD63yDnxdsSL3q33Ri3Iv225eSwy0T7gFAJgGNmyIuPPODLoDYXOvvQa7N0+Eyy/P5xg6VXnW\nrIiddhr+/nffndOX999/Yp4fYGuEWwAAAJo3nnBryToAAADNE24BAABonnALAABA84RbAAAAmifc\nAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0Dzh\nFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJ\ntwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRP\nuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5\nwi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADSv68JtKeXMUsrSUspV\n/acTOz0mAAAAutuMTg9gGDUi/rHW+o+dHggAAABt6LrKbb/S6QEAAADQjm4Nt+8tpVxTSjmnlPLY\nTg8GAACA7lZqrVP/pKVcFBGzh7npwxFxRUSs7L/88YjYr9b61s2+v3Zi3AAAAEy+UkrUWsc0o7cj\na25rrSeM5n6llM9FxHnD3XbmmWf+7nxPT0/09PRMxNAAAACYYr29vdHb27tdj9GRyu3WlFL2q7Uu\n6z//JxFxbK31lM3uo3ILAAAwTTVTud2Gvy2lHBnZNfmmiHhnh8cDAABAl+u6yu1oqNwCAABMX+Op\n3HZrt2QAAAAYNeEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wC\nAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEW\nAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3\nAAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4\nBQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnC\nLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0T\nbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGie\ncAsAAEDzhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDz\nhFsAAACaJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACa\nJ9wCAADQPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQ\nPOEWAACA5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzhFsAAACaJ9wCAADQPOEWAACA\n5gm3AAAANE+4BQAAoHnCLQAAAM0TbgEAAGiecAsAAEDzOhJuSyknl1J+U0rZWEo5erPbPlRKuaGU\nsqiU8sJOjA8AAIC2zOjQ8/46Ik6KiLOHXllKOTwiXh8Rh0fE/hFxcSnlibXWvqkfIgAAAK3oSOW2\n1rqo1nr9MDe9MiLOrbU+XGu9OSIWR8T8KR0cAAAAzem2NbdzImLpkMtLIyu4AAAAMKJJm5ZcSrko\nImYPc9MZtdbzxvBQdYKGBAAAwDQ1aeG21nrCOL7t9og4YMjluf3XbeHMM8/83fmenp7o6ekZx9MB\nAADQab29vdHb27tdj1Fq7VxhtJRySUT8aa31v/svHx4RX41cZ7t/RFwcEYfWzQZZStn8KgAAAKaJ\nUkrUWstYvqdTWwGdVEq5LSKeFRE/KKWcHxFRa10YEV+PiIURcX5EnC7FAgAAsC0drdyOl8otAADA\n9NVM5RYAAAAmknALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24B\nAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnAL\nAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84Rb\nAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifc\nAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0Dzh\nFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJ\ntwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRP\nuAUAAKB5wi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5\nwi0AAADNE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADN\nE24BAABonnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABo\nnnALAABA84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADRPuAUAAKB5wi0AAADNE24BAABonnALAABA\n84RbAAAAmifcAgAA0DzhFgAAgOYJtwAAADSvI+G2lHJyKeU3pZSNpZSjh1x/UCnlgVLKVf2nszox\nPgAAANoyo0PP++uIOCkizh7mtsW11qOmeDwAAAA0rCPhtta6KCKilNKJpwcAAGCa6cY1twf3T0nu\nLaU8t9ODAQAAoPtNWuW2lHJRRMwe5qYzaq3njfBtd0TEAbXWVf1rcb9bSjmi1rpmssYJAABA+yYt\n3NZaTxjH96yPiPX9568spSyJiHkRceXm9z3zzDN/d76npyd6enrGO1QAAAA6qLe3N3p7e7frMUqt\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108678290>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(16,16))\n",
    "plt.scatter(xt[0],yt[0], s=100, label='Start', c='g')\n",
    "plt.scatter(xt[-1],yt[-1], s=100, label='Goal', c='r')\n",
    "plt.plot(xt,yt, label='State',alpha=0.5)\n",
    "\n",
    "plt.xlabel('X')\n",
    "plt.ylabel('Y')\n",
    "plt.title('Position')\n",
    "plt.legend(loc='best')\n",
    "plt.xlim([-20, 20])\n",
    "plt.ylim([-20, 20])\n",
    "plt.savefig('Kalman-Filter-CA-Position.png', dpi=72, transparent=True, bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conclusion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your drifted 62 units from origin.\n"
     ]
    }
   ],
   "source": [
    "dist=np.cumsum(np.sqrt(np.diff(xt)**2 + np.diff(yt)**2))\n",
    "print('Your drifted %d units from origin.' % dist[-1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, bad idea just to measure the acceleration and try to get the position. The errors integrating up, so your position estimation is drifting."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
